:root{--paper: #f4ead6;--paper-2: #efe3c8;--ink: #2c2416;--ink-soft: #5b4d38;--line: #cbb894;--red: #8b3a2a;--gold: #b0894a;--shadow: rgba(70, 50, 20, .28);--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:Noto Sans SC,PingFang SC,sans-serif;color:var(--ink);background:#1d1810;-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}img{display:block;max-width:100%}.app{height:100%;display:flex;flex-direction:column;background:radial-gradient(120% 80% at 50% 0%,#3a2e1c,#1d1810 70%)}.desk{flex:1;min-height:0;display:flex;align-items:stretch;justify-content:center;padding:8px 10px 4px}.book{width:min(430px,100%);height:100%;position:relative;perspective:1400px}.page{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(90,60,20,.08) 0 10px,transparent 22px),repeating-linear-gradient(0deg,transparent,transparent 27px,rgba(180,150,90,.18) 28px),var(--paper);border-radius:4px 14px 14px 4px;box-shadow:8px 10px 24px var(--shadow),inset 0 0 0 1px #ffffff59;transform-origin:left center;overflow:hidden;display:flex;flex-direction:column}.page.enter{animation:flipIn .38s ease}.page.leave{animation:flipOut .28s ease forwards;pointer-events:none}@keyframes flipIn{0%{transform:rotateY(-70deg);opacity:.4}to{transform:rotateY(0);opacity:1}}@keyframes flipOut{0%{transform:rotateY(0);opacity:1}to{transform:rotateY(70deg);opacity:0}}.page-body,.page-body *,button,input,textarea,select,label{pointer-events:auto}.page-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px 4px 16px;border-bottom:1px solid var(--line);flex-shrink:0}.seal{font-family:Ma Shan Zheng,"Noto Serif SC",serif;font-size:20px;color:var(--red);letter-spacing:2px}.page-sub{font-size:11px;color:var(--ink-soft);letter-spacing:1px}.page-body{flex:1;min-height:0;padding:8px 12px 8px 16px;overflow:hidden;display:flex;flex-direction:column;gap:6px}.nav{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:6px 8px calc(8px + var(--safe-b));background:#2a2318;border-top:1px solid #4a3b26}.nav button{background:transparent;border:0;color:#cbb894;font-size:11px;padding:6px 0 4px;border-radius:8px}.nav button.active{background:#f4ead6;color:var(--red);font-weight:700}.nav .ico{display:block;font-size:13px;margin-bottom:1px;letter-spacing:0}.row{display:flex;gap:6px;align-items:center}.grow{flex:1;min-width:0}.col{display:flex;flex-direction:column;gap:6px;min-height:0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:6px;min-height:0}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.field{display:flex;align-items:center;gap:6px;border-bottom:1px dashed var(--line);padding:2px 0;min-height:26px}.field label{flex:0 0 52px;font-size:11px;color:var(--ink-soft)}.field input,.field select,.plain{flex:1;min-width:0;border:0;background:transparent;outline:none;font-size:12px}.area{width:100%;border:1px dashed var(--line);background:#ffffff47;border-radius:4px;padding:5px 7px;outline:none;resize:none;font-size:12px;line-height:1.45}.tiny{font-size:11px;color:var(--ink-soft)}.btn{border:1px solid var(--gold);background:#f8f1df;color:var(--red);border-radius:4px;padding:4px 8px;font-size:11px;white-space:nowrap}.btn.solid{background:var(--red);color:#f8f1df;border-color:var(--red)}.btn.ghost{background:transparent}.tag{font-size:10px;border:1px solid var(--line);padding:1px 6px;border-radius:10px;color:var(--ink-soft)}.stamp{display:inline-block;border:2px solid var(--red);color:var(--red);font-family:Ma Shan Zheng,serif;padding:0 6px;transform:rotate(-8deg);font-size:13px;line-height:1.3}.avatar{width:62px;height:78px;border:1px solid var(--line);background:#e8dcc0;object-fit:cover;flex-shrink:0}.thumbs{display:flex;gap:4px;overflow:hidden}.thumbs img,.shot{width:44px;height:44px;object-fit:cover;border:1px solid var(--line);background:#e8dcc0;flex-shrink:0}.file-btn{position:relative;overflow:hidden}.file-btn input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.cal-bar{display:flex;align-items:center;justify-content:space-between}.cal-bar strong{font-family:"Noto Serif SC",serif;font-size:14px}.weekdays,.days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.weekdays{font-size:10px;color:var(--ink-soft)}.days button{border:0;background:transparent;height:26px;font-size:11px;border-radius:4px}.days button.on{background:var(--red);color:#f8f1df}.days button.muted{color:#b7a888}.timeline{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:3px}.slot{display:grid;grid-template-columns:40px 1fr 18px;align-items:center;gap:4px;font-size:11px}.slot time{color:var(--ink-soft);font-variant-numeric:tabular-nums}.slot input{border:0;border-bottom:1px solid var(--line);background:transparent;outline:none;height:20px}.bell{width:16px;height:16px;border:1px solid var(--gold);border-radius:50%;background:transparent;padding:0;font-size:9px;line-height:1;color:var(--gold)}.bell.on{background:var(--red);color:#fff;border-color:var(--red)}.todos4{display:grid;grid-template-columns:1fr 1fr;gap:3px 8px}.todos4 label{display:flex;align-items:center;gap:4px;font-size:12px}.todos4 input[type=text]{flex:1;border:0;border-bottom:1px solid var(--line);background:transparent;outline:none;min-width:0}.moods{display:flex;gap:4px}.moods button{width:24px;height:24px;border-radius:50%;border:1px solid var(--line);background:transparent;font-size:11px}.moods button.on{background:var(--red);color:#fff;border-color:var(--red)}.list{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:5px}.card{border:1px solid var(--line);background:#ffffff40;padding:6px 8px;border-radius:4px}.card h4{font-size:13px;font-family:"Noto Serif SC",serif}.done{opacity:.55;text-decoration:line-through}.chk{display:flex;align-items:center;gap:6px;font-size:12px}.chk input{accent-color:var(--red)}.split{display:grid;grid-template-columns:1.15fr .85fr;gap:8px;min-height:0;flex:1}.auth{height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 80% at 50% 0%,#3a2e1c,#1d1810 70%);padding:20px}.cover{width:min(360px,100%);background:var(--paper);padding:28px 22px 22px;border-radius:2px 16px 16px 2px;box-shadow:10px 14px 30px var(--shadow)}.cover h1{font-family:Ma Shan Zheng,serif;font-size:42px;text-align:center;color:var(--red)}.cover p{text-align:center;font-size:12px;color:var(--ink-soft);margin:4px 0 16px}.cover .field{margin-bottom:8px}.cover .btn{width:100%;padding:8px;margin-top:8px}.err{color:var(--red);font-size:12px;min-height:16px;text-align:center}.toast{position:fixed;left:50%;bottom:76px;transform:translate(-50%);background:#2c2416;color:#f4ead6;font-size:12px;padding:8px 12px;border-radius:4px;z-index:20}.modal{position:absolute;top:0;right:0;bottom:0;left:0;background:#1c160e73;display:flex;align-items:flex-end;z-index:8}.sheet{width:100%;background:var(--paper);padding:12px 14px calc(12px + var(--safe-b));border-radius:12px 12px 0 0;max-height:78%;overflow:auto}.sheet h3{font-family:"Noto Serif SC",serif;margin-bottom:8px}.stage-row{display:grid;grid-template-columns:108px 1fr 36px;gap:4px;align-items:center;margin-bottom:4px}.stage-row input{border:0;border-bottom:1px solid var(--line);background:transparent;outline:none;font-size:12px;min-width:0;height:26px}.book-mode .field input,.book-mode .area,.book-mode .plain{pointer-events:none}.pdf-host{position:absolute;left:-10000px;top:0;width:640px;background:#f7f1e4;color:#2c2416}.pdf-sheet{padding:28px 32px 40px;font-family:"Noto Serif SC",Noto Sans SC,serif;line-height:1.65}.pdf-sheet h1{font-family:Ma Shan Zheng,"Noto Serif SC",serif;font-size:36px;color:#8b3a2a;margin-bottom:4px}.pdf-sheet .meta{font-size:12px;color:#5b4d38;margin-bottom:16px}.pdf-sheet h3{font-size:15px;border-bottom:1px solid #cbb894;margin:16px 0 8px;padding-bottom:4px;font-weight:700}.pdf-sheet p{font-size:13px;margin:0 0 6px;white-space:pre-wrap}.pdf-sheet .av{width:72px;height:90px;object-fit:cover;border:1px solid #cbb894;margin-bottom:8px}.pdf-sheet .photos{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}.pdf-sheet .photos img{width:88px;height:88px;object-fit:cover;border:1px solid #cbb894}.scroll-lite{overflow:auto;min-height:0;flex:1}.scroll-lite::-webkit-scrollbar{width:0;height:0}.plan-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;flex:0 0 auto}.plan-cell{border:0;background:#ffffff38;min-height:38px;padding:2px 1px;display:flex;flex-direction:column;align-items:stretch;border-radius:3px}.plan-cell.on{background:#8b3a2a2e}.plan-cell.muted{background:transparent}.plan-num{font-size:10px;text-align:left;padding-left:2px}.plan-bars{display:flex;flex-direction:column;gap:1px;min-height:10px}.plan-bars i{display:block;height:3px;border-radius:2px}.plan-lanes{display:flex;flex-direction:column;gap:4px}.plan-lane{display:grid;grid-template-columns:72px 1fr;gap:6px;align-items:center;border:0;background:transparent;text-align:left;padding:2px 0}.plan-lane.open .plan-lane-name{color:var(--red);font-weight:700}.plan-lane-name{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-track{position:relative;height:10px;background:#cbb89459;border-radius:6px}.plan-track i{position:absolute;top:0;height:10px;border-radius:6px}.color-dot{width:16px;height:16px;border:0;border-radius:50%;padding:0}.page{z-index:1}.modal{z-index:9;pointer-events:auto}.sheet{pointer-events:auto}@media (max-height: 700px){.page-head{padding:6px 10px 3px 14px}.page-body{padding:6px 10px 6px 14px;gap:4px}.days button{height:22px}.avatar{width:52px;height:66px}.plan-cell{min-height:32px}}
