:root{--ink:#26221c;--ink-soft:#554e43;--muted:#8b8171;--paper:#f3ecdf;--paper-2:#faf5ea;--paper-3:#ece2cf;--line:rgba(83,71,53,0.16);--line-strong:rgba(83,71,53,0.32);--red-line:rgba(148,60,50,0.3);--green-950:#0e201a;--green-900:#142a22;--green-800:#1b362c;--green-700:#254b3b;--green-600:#326049;--gold:#c5a269;--gold-bright:#e4c88f;--gold-dim:#97783f;--danger:#943d34;--danger-soft:#f6e5e1;--ok:#396b50;--ok-soft:#e6efe6;--font-serif:"Songti SC","Source Han Serif SC","Noto Serif SC","STSong","SimSun",Georgia,"Times New Roman",serif;--font-kai:"Kaiti SC","STKaiti","KaiTi","Songti SC","STSong","SimSun",serif;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--radius:3px;--shadow-sm:0 1px 2px rgba(38,34,28,0.05),0 8px 24px rgba(38,34,28,0.04);--shadow-md:0 2px 4px rgba(38,34,28,0.06),0 18px 48px rgba(38,34,28,0.08);color-scheme:light}*{box-sizing:border-box}body,html{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{min-height:100vh;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}::selection{background:#ddcba7;color:#1c1914}a{color:var(--green-700);text-decoration:none;transition:color .14s ease}a:hover{color:var(--green-950)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,h4,p{margin:0}strong{font-weight:700}:focus-visible{outline:2px solid rgba(37,75,59,.5);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 17px;border:1px solid var(--line-strong);border-radius:var(--radius);background:transparent;color:var(--ink);font-size:13.5px;letter-spacing:.02em;line-height:1.3;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.btn:hover{background:rgba(255,255,255,.55);border-color:var(--ink-soft)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--green-800);border-color:var(--green-800);color:#f7efdf}.btn.primary:hover{background:var(--green-700);border-color:var(--green-700);color:#fff8ea}.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--green-950)}.btn.gold:hover{background:var(--gold-bright);border-color:var(--gold-bright)}.btn.ghost{border-color:transparent;color:var(--ink-soft);padding-inline:10px}.btn.ghost:hover{background:rgba(83,71,53,.07);color:var(--ink)}.btn.danger{color:var(--danger);border-color:rgba(148,61,52,.35)}.btn.danger:hover{background:var(--danger-soft);border-color:var(--danger)}.btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.btn-sm{padding:6px 12px;font-size:12.5px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.field-label,.field>label{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.input,input[type=email],input[type=password],input[type=text],textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius);background:rgba(255,255,255,.5);color:var(--ink);padding:10px 12px;font-size:15px;line-height:1.5;transition:border-color .15s ease,background-color .15s ease}.input:hover,input[type=email]:hover,input[type=password]:hover,input[type=text]:hover,textarea:hover{border-color:rgba(83,71,53,.5)}.input:focus,input[type=email]:focus,input[type=password]:focus,input[type=text]:focus,textarea:focus{outline:none;border-color:var(--green-700);background:rgba(255,255,255,.8);box-shadow:0 0 0 3px rgba(37,75,59,.08)}textarea{resize:vertical}.hint{color:var(--muted);font-size:12.5px;line-height:1.6}.hint code,code{padding:1px 5px;border-radius:2px;background:rgba(83,71,53,.08);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.9em;color:var(--ink-soft)}.alert{padding:10px 13px;border-radius:var(--radius);border:1px solid transparent;font-size:13.5px;margin-bottom:16px}.alert.error{background:var(--danger-soft);border-color:rgba(148,61,52,.22);color:var(--danger)}.alert.ok{background:var(--ok-soft);border-color:rgba(57,107,80,.22);color:var(--ok)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border:1px solid var(--line);border-radius:99px;background:rgba(255,255,255,.45);color:var(--muted);font-size:10.5px;letter-spacing:.08em;line-height:1.4;white-space:nowrap}.badge.gold{border-color:rgba(151,120,63,.4);color:var(--gold-dim);background:rgba(197,162,105,.08)}.login-page{position:relative;display:grid;place-items:center;min-height:100dvh;padding:36px 20px;overflow:hidden;background:radial-gradient(120% 90% at 50% -10%,rgba(197,162,105,.12),transparent 55%),radial-gradient(100% 80% at 50% 120%,rgba(0,0,0,.45),transparent 60%),linear-gradient(145deg,#1b332a,#10241d 46%,#0b1a15)}.login-page:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E")}.login-card{display:grid;grid-template-columns:1.02fr .98fr;width:min(920px,100%);border:1px solid rgba(197,162,105,.28);border-radius:4px;background:var(--paper-2);box-shadow:0 40px 100px rgba(0,0,0,.45),inset 0 2px 0 rgba(255,255,255,.06)}.login-art,.login-card{position:relative;overflow:hidden}.login-art{display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:46px 44px;color:#e9ded0;background:radial-gradient(80% 60% at 20% 0,rgba(197,162,105,.16),transparent 60%),linear-gradient(160deg,#1d3b30,#142c23 60%,#0f241c)}.login-art:before{content:"";inset:14px;border:1px solid rgba(197,162,105,.25)}.login-art:after,.login-art:before{position:absolute;pointer-events:none}.login-art:after{content:"玩";right:-18px;bottom:-42px;font-family:var(--font-serif);font-size:210px;line-height:1;color:rgba(197,162,105,.07)}.login-art .brand-en{font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}.login-art h2{margin-top:14px;font-size:30px;font-weight:500;letter-spacing:.1em;color:#f1e6d2}.login-art h2,.login-quote{font-family:var(--font-serif)}.login-quote{position:relative;z-index:1;font-size:17px;line-height:2.2;letter-spacing:.04em;color:rgba(241,230,210,.86)}.login-quote span{display:block}.login-art .art-foot{position:relative;z-index:1;font-size:10px;letter-spacing:.24em;color:rgba(197,162,105,.65);text-transform:uppercase}.login-form-wrap{display:flex;flex-direction:column;justify-content:center;padding:48px 46px;background:radial-gradient(120% 80% at 100% 0,rgba(197,162,105,.09),transparent 55%),var(--paper-2)}.login-form-wrap .eyebrow{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-dim)}.login-form-wrap h1{margin:10px 0 8px;font-family:var(--font-serif);font-size:28px;font-weight:500;letter-spacing:.08em}.login-form-wrap .sub{margin-bottom:28px;color:var(--muted);font-size:13px}.login-form-wrap .btn{width:100%;padding-block:11px}.login-foot{margin-top:22px;display:flex;justify-content:space-between;gap:12px;font-size:12px}.login-foot,.login-foot a{color:var(--muted)}.login-foot a:hover{color:var(--ink)}.admin-shell{display:flex;min-height:100dvh;background:radial-gradient(90% 60% at 100% 0,rgba(197,162,105,.06),transparent 55%),#f1eadc}.admin-sidebar{position:-webkit-sticky;position:sticky;top:0;display:flex;flex-direction:column;flex:0 0 234px;width:234px;height:100dvh;padding:26px 0 18px;overflow-y:auto;color:rgba(233,222,208,.78);background:radial-gradient(70% 40% at 20% 0,rgba(197,162,105,.13),transparent 60%),linear-gradient(165deg,#1a352b,#122820 55%,#0d201a);border-right:1px solid rgba(197,162,105,.16)}.admin-brand{display:block;padding:0 24px 22px;border-bottom:1px solid rgba(233,222,208,.1);color:#efe3cf}.admin-brand:hover{color:#fff6e5}.admin-brand .en{display:block;margin-bottom:6px;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}.admin-brand strong{display:block;font-family:var(--font-serif);font-size:21px;font-weight:500;letter-spacing:.12em}.admin-brand .sub{display:block;margin-top:3px;font-size:11px;letter-spacing:.18em;color:rgba(233,222,208,.46)}.admin-nav{display:flex;flex-direction:column;gap:2px;padding:18px 0}.admin-nav a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 24px;border-left:2px solid transparent;color:rgba(233,222,208,.7);font-size:13.5px;letter-spacing:.04em;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.admin-nav a:hover{background:rgba(233,222,208,.06);color:#f4e9d6}.admin-nav a.active{border-left-color:var(--gold);background:rgba(197,162,105,.09);color:var(--gold-bright)}.admin-nav .nav-note{font-size:9px;letter-spacing:.12em;color:rgba(233,222,208,.35);text-transform:uppercase}.admin-sidebar-foot{margin-top:auto;padding:18px 24px 0;border-top:1px solid rgba(233,222,208,.1);font-size:11px;line-height:1.7;color:rgba(233,222,208,.42)}.admin-sidebar-foot .who{color:rgba(244,233,214,.9);font-size:12.5px;letter-spacing:.04em}.admin-sidebar-foot form{margin-top:10px}.admin-sidebar-foot .btn{padding:5px 10px;border-color:rgba(233,222,208,.22);color:rgba(233,222,208,.7);font-size:11px}.admin-sidebar-foot .btn:hover{background:rgba(233,222,208,.08);color:#f4e9d6}.admin-main{flex:1 1;min-width:0;width:100%;padding:38px clamp(22px,4vw,54px) 80px}.admin-inner{width:100%;max-width:1120px;margin:0 auto}.admin-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-dim)}.admin-head h1{margin:7px 0 4px;font-family:var(--font-serif);font-size:clamp(26px,3vw,34px);font-weight:500;letter-spacing:.06em;line-height:1.25}.admin-head .sub{color:var(--muted);font-size:13px}.stat-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:22px}.stat{padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(250,245,234,.7)}.stat .n{display:block;font-family:var(--font-serif);font-size:25px;line-height:1.15;letter-spacing:.02em}.stat .l{display:block;margin-top:3px;color:var(--muted);font-size:11px;letter-spacing:.08em}.stat .l span{letter-spacing:0}.admin-card{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-2);box-shadow:var(--shadow-sm);margin-bottom:20px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px}.card-head h2{font-family:var(--font-serif);font-size:20px;font-weight:500;letter-spacing:.05em}.card-head .more{font-size:12px;color:var(--muted);letter-spacing:.06em}.card-head .more:hover{color:var(--ink)}.compose-grid{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);grid-gap:26px;gap:26px;align-items:stretch}.compose-col{display:flex;flex-direction:column;min-width:0}.compose-col .field:last-of-type{margin-bottom:12px}.editor-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:2px 0 14px;color:var(--muted);font-size:11.5px}.editor-tools .count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.04em}.input-title{font-family:var(--font-serif);font-size:20px;letter-spacing:.03em;padding:12px 14px}.diary-input{min-height:318px;padding:14px 18px;border-color:rgba(83,71,53,.24);background-color:#fbf6ea;background-image:repeating-linear-gradient(180deg,transparent 0,transparent 28px,rgba(83,71,53,.12) 0,rgba(83,71,53,.12) 29px,transparent 0,transparent 30px);background-position:0 8px;font-family:var(--font-kai);font-size:17px;line-height:30px;letter-spacing:.02em}.diary-input::placeholder{color:rgba(139,129,113,.62)}.compose-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:16px}.compose-actions .note{color:var(--muted);font-size:11.5px;line-height:1.5}.preview-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.preview-head span:first-child{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.preview-head span:last-child{font-family:var(--font-serif);font-size:12px;color:var(--gold-dim);letter-spacing:.08em}.preview-paper{flex:1 1;min-height:318px;padding:30px 26px 34px;overflow:hidden;border:1px solid rgba(83,71,53,.2);border-radius:2px;background-color:#fbf6ea;background-image:linear-gradient(90deg,transparent 0,transparent 24px,rgba(148,60,50,.2) 0,rgba(148,60,50,.2) 25px,transparent 0),repeating-linear-gradient(180deg,transparent 0,transparent 29px,rgba(83,71,53,.13) 0,rgba(83,71,53,.13) 30px);box-shadow:inset 0 0 40px rgba(124,103,70,.05);font-family:var(--font-kai);font-size:16.5px;line-height:30px;letter-spacing:.02em}.preview-paper p{margin:0;min-height:30px;text-indent:2em;overflow-wrap:break-word}.preview-paper p.gap{margin-top:30px}.preview-paper .preview-empty{text-indent:0;color:var(--muted);font-family:var(--font-serif);font-size:14px;letter-spacing:.06em}.preview-paper strong{font-weight:700}.day-group+.day-group{margin-top:24px}.day-heading{display:flex;align-items:baseline;gap:10px;padding:0 0 8px;border-bottom:1px solid var(--line-strong);margin-bottom:2px}.day-heading .date{font-family:var(--font-serif);font-size:16px;letter-spacing:.06em}.day-heading .weekday{font-size:11px;letter-spacing:.12em;color:var(--muted)}.day-heading .count{margin-left:auto;font-size:10px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}.entry-row{display:grid;grid-template-columns:62px minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:start;padding:14px 4px 15px;border-bottom:1px solid var(--line);color:var(--ink);transition:background-color .14s ease}.entry-row:last-child{border-bottom:none}.entry-row:hover{background:rgba(197,162,105,.06);color:var(--ink)}.entry-time{padding-top:2px;color:var(--muted);font-size:11px;letter-spacing:.06em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.entry-main{min-width:0}.entry-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-family:var(--font-serif);font-size:17px;font-weight:600;letter-spacing:.03em;line-height:1.4}.entry-excerpt{margin-top:4px;color:var(--ink-soft);font-size:13px;line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.entry-meta{margin-top:5px;display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:10.5px;letter-spacing:.05em}.entry-actions{display:flex;align-items:center;gap:4px;padding-top:2px}.entry-actions .btn{padding:5px 9px;font-size:11.5px;border-color:transparent;color:var(--muted)}.entry-actions .btn:hover{border-color:var(--line);color:var(--ink);background:rgba(255,255,255,.55)}.empty-state{padding:54px 20px;text-align:center;color:var(--muted)}.empty-state .mark{font-family:var(--font-serif);font-size:28px;color:rgba(197,162,105,.55);letter-spacing:.2em;margin-bottom:12px}.empty-state p{font-family:var(--font-serif);font-size:16px;letter-spacing:.05em;color:var(--ink-soft)}.empty-state .sub{margin-top:6px;font-family:var(--font-sans);font-size:12.5px;color:var(--muted);letter-spacing:0}.edit-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);grid-gap:24px;gap:24px;align-items:start}.edit-side{gap:16px}.edit-side,.meta-list{display:flex;flex-direction:column}.meta-list{gap:10px;margin:0;padding:0;list-style:none;font-size:12.5px}.meta-list li{display:flex;justify-content:space-between;gap:16px;padding-bottom:10px;border-bottom:1px dotted var(--line-strong)}.meta-list li:last-child{border-bottom:none;padding-bottom:0}.meta-list .k{color:var(--muted);letter-spacing:.06em}.meta-list .v{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.danger-zone{border-color:rgba(148,61,52,.22)}.danger-zone h2{color:var(--danger)}.back-link{display:inline-flex;align-items:center;gap:6px;margin-bottom:16px;color:var(--muted);font-size:12px;letter-spacing:.06em}.back-link:hover{color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.muted{color:var(--muted)}.small{font-size:12px}@media (max-width:980px){.compose-grid,.edit-layout{grid-template-columns:minmax(0,1fr)}.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:820px){.login-card{grid-template-columns:minmax(0,1fr)}.login-art{min-height:220px;padding:34px 32px;gap:22px}.login-art h2{font-size:24px}.login-quote{font-size:15px;line-height:1.95}.login-form-wrap{padding:34px 30px 38px}.admin-shell{display:block}.admin-sidebar{position:relative;width:100%;height:auto;padding:16px 0 12px;overflow:visible;border-right:none;border-bottom:1px solid rgba(197,162,105,.18)}.admin-brand{padding:0 20px 14px}.admin-brand strong{font-size:18px}.admin-nav{flex-direction:row;gap:2px;padding:10px 12px;overflow-x:auto;scrollbar-width:none}.admin-nav::-webkit-scrollbar{display:none}.admin-nav a{padding:6px 12px;border-left:none;border-bottom:2px solid transparent;white-space:nowrap;font-size:12.5px}.admin-nav a.active{border-left:none;border-bottom-color:var(--gold)}.admin-nav .nav-note{display:none}.admin-sidebar-foot{display:flex;align-items:center;gap:10px;padding:10px 20px 0;border-top:none}.admin-sidebar-foot .who{font-size:11.5px}.admin-sidebar-foot .email,.admin-sidebar-foot .role{display:none}.admin-sidebar-foot form{margin:0 0 0 auto}.admin-main{padding:26px 18px 64px}.admin-head{align-items:flex-start;flex-direction:column;gap:14px}.admin-card{padding:20px 18px}.entry-row{grid-template-columns:minmax(0,1fr) auto;gap:10px}.entry-time{grid-column:1/-1;padding-top:0}.entry-actions{grid-column:2;grid-row:1}}@media (max-width:560px){.login-page{padding:18px 12px}.login-form-wrap{padding:28px 22px 30px}.login-art{display:none}.login-foot{flex-direction:column;gap:4px}.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat{padding:11px 12px}.stat .n{font-size:21px}.preview-paper{padding:30px 20px 34px}.diary-input,.preview-paper{font-size:16px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}