:root{
  --bg:#f8f6fa;
  --ink:#4b4558;
  --ink-strong:#332e3f;
  --muted:#877f92;
  --faint:#b8b1c1;
  --line:rgba(67,58,81,.10);
  --line-soft:rgba(67,58,81,.065);
  --card:rgba(255,255,255,.50);
  --card-solid:#fffdfd;
  --shelf:rgba(255,255,255,.42);
  --purple:#9585c5;
  --purple-deep:#8472b8;
  --purple-soft:#eeeaf6;
  --shadow:0 24px 56px rgba(62,52,77,.078),0 2px 4px rgba(62,52,77,.028);
  --shelf-shadow:0 18px 42px rgba(62,52,77,.052),0 2px 4px rgba(62,52,77,.024);
  --radius-lg:36px;
  --radius-md:28px;
  --font-ui:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","PingFang SC","Microsoft YaHei",sans-serif;
  --font-hand:"LXGW WenKai Screen","LXGW WenKai","霞鹜文楷","Kaiti SC","STKaiti","KaiTi",serif;
  --font:var(--font-ui);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--font-ui);
  color:var(--ink);
  background:
    radial-gradient(circle at 14% 4%,rgba(190,181,213,.15),transparent 26%),
    radial-gradient(circle at 88% 15%,rgba(235,226,206,.20),transparent 27%),
    linear-gradient(135deg,#fbfafc 0%,#f6f4f8 58%,#fffefa 100%);
  overflow:hidden;
}
button,input,textarea{font:inherit}
button{border:0;background:none;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transform:translateZ(0);transition:transform .16s cubic-bezier(.22,.88,.28,1.18),background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .22s ease,opacity .18s ease,filter .18s ease}
button:not(:disabled):hover{filter:saturate(1.02)}
button:not(:disabled):active,button.is-pressing{transform:translateY(1px) scale(.965);filter:saturate(.98)}
button.is-pop{transform:translateY(-1px) scale(1.018)}
button:focus-visible,input:focus-visible,textarea:focus-visible,.star-track:focus-visible{outline:3px solid rgba(149,133,197,.35);outline-offset:3px}
button:disabled,input:disabled{cursor:not-allowed}

.entry-gate{--drag:0;position:fixed;inset:0;z-index:40;overflow:hidden;color:#faf8ff;background:#1e1a2a;transition:opacity .72s ease,transform .72s ease,visibility .72s ease}
.entry-gate.hidden{opacity:0;pointer-events:none;visibility:hidden;transform:scale(1.018)}
.entry-night{position:absolute;inset:0;background:radial-gradient(circle at 70% 34%,rgba(151,132,190,.46),transparent 28%),radial-gradient(circle at 28% 73%,rgba(233,224,204,.14),transparent 25%),linear-gradient(145deg,#1e1a2b,#312946 58%,#1a1825)}
.entry-night::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 16% 18%,rgba(255,255,255,.48) 0 1px,transparent 2px),radial-gradient(circle at 78% 22%,rgba(255,255,255,.4) 0 1px,transparent 2px),radial-gradient(circle at 84% 72%,rgba(255,255,255,.34) 0 1px,transparent 2px),radial-gradient(circle at 34% 42%,rgba(255,255,255,.36) 0 1px,transparent 2px);opacity:.42}
.entry-copy{position:absolute;left:clamp(26px,8vw,86px);top:clamp(62px,12vh,116px);max-width:520px;z-index:3}
.entry-copy p{margin:0 0 12px;color:#c7bdd8;font-size:12px;font-weight:760;letter-spacing:.12em}
.entry-copy h1{margin:0;font-size:clamp(42px,7vw,76px);letter-spacing:-.045em;line-height:.98;color:#fff;font-weight:790;text-shadow:0 12px 34px rgba(0,0,0,.23)}
.entry-copy span{display:block;margin-top:16px;color:#e9e1f3;font-size:clamp(15px,1.9vw,20px);font-weight:560;letter-spacing:.01em}
.entry-hero{position:absolute;right:clamp(20px,8vw,120px);bottom:clamp(36px,6vh,78px);width:min(43vw,510px);max-height:70vh;object-fit:contain;z-index:2;filter:drop-shadow(0 26px 58px rgba(0,0,0,.22));opacity:.82}
.entry-moon{position:absolute;width:110px;left:8%;bottom:18%;opacity:.14}
.entry-cloud{position:absolute;width:120px;right:16%;top:17%;opacity:.18}
.entry-dust{position:absolute;width:180px;right:28%;bottom:23%;opacity:.32}
.star-track{position:absolute;left:clamp(26px,8vw,86px);bottom:clamp(58px,9vh,96px);width:min(520px,calc(100vw - 52px));height:72px;z-index:4;touch-action:none;user-select:none}
.track-rail{position:absolute;left:0;right:0;top:33px;height:2px;border-radius:999px;background:rgba(255,255,255,.16)}
.track-fill{position:absolute;left:0;top:33px;width:calc(var(--drag) * 1%);height:2px;border-radius:999px;background:linear-gradient(90deg,rgba(255,255,255,.4),rgba(226,216,255,.96));box-shadow:0 0 24px rgba(220,206,255,.64)}
.track-trail{position:absolute;left:-4px;top:10px;width:calc(max(60px, var(--drag) * 4.7px));height:52px;object-fit:fill;opacity:calc(.12 + var(--drag) * .009);clip-path:inset(0 calc(100% - var(--drag) * 1%) 0 0)}
.star-knob{position:absolute;left:calc(var(--drag) * (100% - 58px) / 100);top:8px;width:58px;height:58px;object-fit:contain;filter:drop-shadow(0 0 18px rgba(255,255,255,.62))}
.star-track span{position:absolute;left:72px;top:26px;color:rgba(255,255,255,.72);font-weight:650;letter-spacing:.03em}
.entry-wake{position:absolute;right:clamp(24px,6vw,74px);bottom:clamp(28px,5vh,54px);z-index:4;min-height:44px;padding:0 18px;border-radius:999px;color:#efe8fb;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(16px)}

.app{min-height:100dvh;padding:calc(env(safe-area-inset-top) + 16px) calc(env(safe-area-inset-right) + 24px) calc(env(safe-area-inset-bottom) + 20px) calc(env(safe-area-inset-left) + 24px);opacity:0;transition:opacity .42s ease}
.app.ready{opacity:1}
.app-shell{height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 36px);max-width:1420px;margin:0 auto;display:grid;grid-template-rows:38px minmax(0,1fr);gap:12px}
.topbar{display:flex;align-items:center;justify-content:space-between;min-height:38px}
.brandline{font-size:14px;line-height:1;font-weight:720;color:#766d84;letter-spacing:-.01em}
.top-actions{display:flex;align-items:center;gap:8px}
.top-button{min-height:38px;padding:0 15px;border-radius:999px;background:rgba(255,255,255,.54);border:1px solid var(--line-soft);box-shadow:0 4px 18px rgba(70,60,90,.035);font-size:14px;font-weight:720;color:#655c72}
.top-button:hover{background:rgba(255,255,255,.76);box-shadow:0 10px 22px rgba(70,60,90,.055)}
.top-button:first-child{background:rgba(255,255,255,.70)}
.icon-button{min-width:46px;padding:0 14px;font-size:20px;line-height:1;letter-spacing:.08em}

.desk{position:relative;min-height:0;display:grid;grid-template-rows:minmax(296px,.92fr) minmax(210px,.66fr);gap:16px;align-content:stretch}
.bg-trail{position:absolute;right:7%;top:8%;width:42%;opacity:.055;pointer-events:none}
.bg-sparkles{position:absolute;left:42%;top:38%;width:120px;opacity:.10;pointer-events:none}
.upper-row{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,.94fr);gap:16px;min-height:0}
.card{position:relative;overflow:hidden;border-radius:var(--radius-lg);background:linear-gradient(180deg,rgba(255,255,255,.60),rgba(255,255,255,.38));border:1px solid rgba(255,255,255,.58);box-shadow:var(--shadow), inset 0 1px 0 rgba(255,255,255,.42);backdrop-filter:blur(34px) saturate(1.05);-webkit-backdrop-filter:blur(34px) saturate(1.05)}

.compose-card{padding:28px 28px 26px;display:flex;flex-direction:column;justify-content:center;gap:16px}
.line-row{display:flex;align-items:center;gap:12px}
.line-row h1{margin:0;flex:1;min-width:0;color:var(--ink-strong);font-size:clamp(42px,5.6vw,72px);line-height:1.02;font-weight:780;letter-spacing:-.055em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ghost-action{min-height:44px;padding:0 15px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.58);font-weight:720;color:#675f73;box-shadow:0 1px 2px rgba(65,54,82,.025)}
.ghost-action:hover{background:rgba(255,255,255,.84);border-color:rgba(83,73,101,.12);box-shadow:0 8px 20px rgba(65,54,82,.055)}
.swap-action{display:inline-flex;align-items:center;gap:7px;padding-inline:13px 15px}
.swap-action::before{content:"↻";font-size:14px;line-height:1;color:#9187a0;transform:translateY(-.5px)}
.thin-copy{margin:0;color:#7c7487;font-size:17px;font-weight:650;letter-spacing:-.01em}
.composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;max-width:760px}
.composer input{min-width:0;height:56px;border-radius:28px;border:1px solid rgba(74,63,95,.13);background:rgba(255,255,255,.62);padding:0 20px;color:var(--ink);font-weight:620;box-shadow:inset 0 1px 1px rgba(255,255,255,.8)}
.composer input::placeholder{color:#b4acbd}
.composer input:disabled{color:#a69dad;background:rgba(240,238,244,.68)}
.composer button{min-height:56px;padding:0 24px;border-radius:28px;background:var(--purple);color:white;font-weight:800;box-shadow:0 12px 26px rgba(142,126,190,.25)}
.composer button:hover{background:var(--purple-deep);box-shadow:0 14px 28px rgba(132,114,184,.30)}
.composer button.is-sleeping{background:#d8d2e2;color:#655d72;box-shadow:none}

.g-card{--mascot-w:min(338px,46%);padding:0;min-height:0;display:block;cursor:default;background:radial-gradient(circle at 78% 66%,rgba(189,180,210,.14),transparent 45%),linear-gradient(180deg,rgba(255,255,255,.56),rgba(255,255,255,.34));border-color:rgba(255,255,255,.60)}
.g-card::before{content:none;display:none}
.g-text{position:absolute;left:30px;top:100px;z-index:4;width:min(390px,calc(100% - var(--mascot-w) + 72px));max-width:390px;display:block}
.bubble-word{position:absolute;z-index:5;right:calc(var(--mascot-w) * .52);top:62px;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:7px 15px;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.97),rgba(252,251,255,.86));border:1px solid rgba(103,93,122,.14);color:#756c82;font-family:var(--font-hand);font-size:15px;line-height:1.28;font-weight:500;letter-spacing:.01em;box-shadow:inset 0 0 0 2px rgba(182,176,196,.24),0 10px 22px rgba(66,56,83,.045)}
.bubble-word::after{content:"";position:absolute;right:15px;bottom:-7px;width:12px;height:12px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(252,251,255,.84));border-right:1px solid rgba(103,93,122,.14);border-bottom:1px solid rgba(103,93,122,.14);transform:rotate(-18deg) skewX(18deg);border-bottom-right-radius:4px;box-shadow:2px 2px 0 0 rgba(182,176,196,.28)}
.g-text h2{margin:0;color:var(--ink-strong);font-family:var(--font-hand);font-size:clamp(20px,2.1vw,22px);line-height:1.28;letter-spacing:.01em;font-weight:500;text-wrap:balance;max-width:12em}
.speech-card{position:relative;display:grid;gap:8px;width:100%;padding:20px 24px 18px 24px;border-radius:32px;background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(250,249,252,.84));border:1px solid rgba(103,93,122,.14);box-shadow:inset 0 0 0 2px rgba(181,175,194,.22),0 16px 34px rgba(70,58,90,.05)}
.speech-card::after{content:"";position:absolute;right:40px;bottom:-12px;width:22px;height:22px;background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(250,249,252,.82));border-right:1px solid rgba(103,93,122,.14);border-bottom:1px solid rgba(103,93,122,.14);transform:rotate(-13deg) skewX(18deg);border-bottom-right-radius:7px;box-shadow:2px 2px 0 0 rgba(181,175,194,.24)}
.directive-text{display:none;margin:0;color:#736a7e;font-family:var(--font-hand);font-size:15px;line-height:1.62;font-weight:400;letter-spacing:.005em;max-width:28ch}
.directive-text.show{display:block}
.line-action{display:none}
.mascot-slot{position:absolute;right:10px;bottom:0;width:var(--mascot-w);height:100%;overflow:hidden;z-index:2;pointer-events:auto;cursor:pointer}
.mascot-slot::after{content:"";position:absolute;left:7%;right:3%;bottom:14px;height:1px;border:0;background:linear-gradient(90deg,transparent,rgba(84,76,97,.16) 18%,rgba(84,76,97,.11) 78%,transparent);box-shadow:0 10px 18px rgba(70,58,90,.055);backdrop-filter:none;-webkit-backdrop-filter:none;z-index:1;pointer-events:none}
.mascot-slot img{position:absolute;right:-2%;bottom:-8px;width:110%;max-width:none;height:auto;filter:drop-shadow(0 16px 28px rgba(70,58,90,.08));opacity:1;transform-origin:52% 76%;transition:transform .12s cubic-bezier(.22,.61,.36,1);backface-visibility:hidden;user-select:none}
.note-receive-pad{position:absolute;right:calc(var(--mascot-w) * .34);bottom:clamp(26px,8.5%,44px);width:76px;height:40px;z-index:4;pointer-events:none;opacity:0}
.mascot-overlay{display:none!important;opacity:0!important;visibility:hidden!important;z-index:3}
.mascot-main{z-index:2}
.mascot-slot.blinking .mascot-overlay{display:none!important;opacity:0!important;visibility:hidden!important}
.mascot-slot.react img{transform:translateY(-3px) scale(1.006)}
.mascot-slot.annoyed img{transform:translateX(-1px) rotate(-.6deg)}

.shelf{display:grid;grid-template-columns:minmax(0,.88fr) minmax(540px,1.18fr);gap:16px;min-height:0;background:transparent;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible}
.tasks-panel,.timer-panel{min-height:0;padding:18px 20px;border:1px solid rgba(255,255,255,.58);box-shadow:var(--shelf-shadow), inset 0 1px 0 rgba(255,255,255,.34);background:linear-gradient(180deg,rgba(255,255,255,.52),rgba(255,255,255,.34));backdrop-filter:blur(30px) saturate(1.05);-webkit-backdrop-filter:blur(30px) saturate(1.05)}
.tasks-panel{display:flex;flex-direction:column;border-radius:30px 24px 34px 28px;transform:translateY(10px)}
.timer-panel{position:relative;border-radius:34px 30px 28px 36px;transform:translateY(-6px);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto 10px;grid-template-areas:"time reset" "controls controls" "progress progress";align-content:center;align-items:start;column-gap:12px;row-gap:14px;padding:20px 24px 20px 26px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}
.panel-head h2{margin:0;font-size:27px;line-height:1.05;font-weight:760;letter-spacing:-.035em;color:#494254}
.text-action{min-height:44px;padding:0 12px;border-radius:999px;color:#736a7f;font-size:14px;font-weight:720;background:rgba(255,255,255,.42);border:1px solid rgba(82,72,100,.075)}
.text-action:hover{background:rgba(255,255,255,.78);border-color:rgba(82,72,100,.12)}
.text-action[hidden]{display:none}
.tasks-panel.is-empty .panel-head{display:none}
.task-list{height:calc(100% - 48px);min-height:0;overflow:auto;padding:10px 8px 8px;display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));align-content:start;gap:12px 10px;scrollbar-width:thin}
.tasks-panel.is-empty .task-list{height:100%;padding:0;display:grid;grid-template-columns:1fr}
.empty-task{height:100%;min-height:110px;display:grid;place-items:center;color:#8b8294;font-family:var(--font-hand);font-size:16px;line-height:1.55;font-weight:400;letter-spacing:.01em;text-align:center}
.empty-note-wall::before{content:"";width:84px;height:58px;display:block;margin:0 auto 8px;border-radius:15px;background:linear-gradient(90deg,rgba(139,123,164,.085),rgba(139,123,164,.055)) 19px 29px/50px 1px no-repeat,linear-gradient(90deg,rgba(139,123,164,.06),rgba(139,123,164,.035)) 19px 40px/42px 1px no-repeat,linear-gradient(180deg,rgba(255,254,249,.94),rgba(248,246,255,.86));border:1px solid rgba(91,80,108,.075);box-shadow:0 8px 18px rgba(70,58,90,.04),inset 0 1px 0 rgba(255,255,255,.72);transform:rotate(-1.3deg)}
.task-row,.task-note{position:relative;isolation:isolate;display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:minmax(54px,auto) auto;gap:6px 8px;align-items:start;min-height:112px;padding:18px 15px 13px 14px;border-radius:18px;background:linear-gradient(180deg,rgba(255,254,249,.90),rgba(249,247,255,.80));border:1px solid rgba(91,80,108,.075);box-shadow:0 10px 22px rgba(68,57,84,.045),inset 0 1px 0 rgba(255,255,255,.72);font-family:var(--font-hand);transform:translateY(var(--note-offset,0)) rotate(var(--note-rot,0deg));transform-origin:50% 46%;overflow:visible;will-change:transform,opacity;transition:transform .18s cubic-bezier(.22,.61,.36,1),opacity .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}
.task-note.just-stuck{animation:noteStickIn .28s cubic-bezier(.2,.84,.24,1) both}
.task-note::before{content:"";position:absolute;left:17px;right:16px;top:54px;height:30px;z-index:0;pointer-events:none;border-radius:8px;background:linear-gradient(90deg,rgba(119,101,143,.070),rgba(119,101,143,.040)) 0 0/100% 1px no-repeat,linear-gradient(90deg,rgba(119,101,143,.052),rgba(119,101,143,.026)) 0 15px/82% 1px no-repeat;opacity:.72;transform-origin:50% 50%}
.task-note::after{content:"";position:absolute;left:var(--note-tape-x,44%);top:-8px;width:42px;height:12px;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.44),rgba(225,219,238,.20));border:1px solid rgba(109,96,128,.05);box-shadow:0 4px 10px rgba(68,57,84,.025);transform:translateX(-50%) rotate(calc(var(--note-rot,0deg) * -0.45));z-index:3;pointer-events:none}
.task-note>*{position:relative;z-index:2}
.task-note:hover{transform:translateY(calc(var(--note-offset,0) - 1px)) rotate(calc(var(--note-rot,0deg) * .55));box-shadow:0 12px 25px rgba(68,57,84,.055),inset 0 1px 0 rgba(255,255,255,.76)}
.task-note:hover::before{opacity:.86}
.task-check{width:30px;height:30px;border-radius:999px;display:grid;place-items:center;color:#7f7392;background:rgba(255,255,255,.62);border:1px solid rgba(91,80,108,.11);font-family:var(--font-ui);font-size:14px;font-weight:820;box-shadow:0 5px 12px rgba(70,58,90,.035)}
.task-check:hover,.task-actions button:hover,.task-edit button:hover{background:rgba(255,255,255,.88);border-color:rgba(83,73,101,.15)}
.task-note.completing{pointer-events:none;z-index:5;animation:noteCrumple 820ms cubic-bezier(.22,.61,.36,1) both}
.task-note.completing::before{animation:noteLinesCrumple 820ms cubic-bezier(.22,.61,.36,1) both}
.task-note.completing::after{animation:tapeFold 520ms ease both}
.task-note.completing .task-check,.task-note.completing .task-note-text,.task-note.completing .task-meta,.task-note.completing .task-actions,.task-note.completing .task-duty-badge{animation:noteTextVanish 420ms ease both}
.task-note.sweeping-to-archive{pointer-events:none;z-index:6;contain:paint;will-change:transform,opacity;animation:noteSweepToArchive 360ms cubic-bezier(.22,.61,.36,1) var(--sweep-delay,0ms) both}
.task-note.sweeping-to-archive::before,.task-note.sweeping-to-archive::after,.task-note.sweeping-to-archive .task-check,.task-note.sweeping-to-archive .task-note-text,.task-note.sweeping-to-archive .task-meta,.task-note.sweeping-to-archive .task-actions{animation:none!important}
.task-row.done .task-title{text-decoration:line-through;color:#a19aaa}
.task-title{grid-column:2;min-width:0;color:#4d4659;font-family:var(--font-hand);font-size:15px;font-weight:500;line-height:1.62;letter-spacing:.005em;align-self:start;overflow:hidden}
.task-note-text{display:block;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.task-meta{display:inline-block;margin-left:9px;color:#9a93a4;font-family:var(--font-hand);font-size:12px;line-height:1.4;font-weight:400;letter-spacing:.01em;vertical-align:baseline;text-decoration:none}
.task-title .task-meta{display:block;margin-left:0;margin-top:7px;color:#9b94a6;font-size:12px;letter-spacing:.01em}
.task-actions{grid-column:1 / 3;display:flex;justify-content:flex-end;gap:5px;min-height:28px;margin-top:1px}
.task-actions button{min-width:34px;height:30px;border-radius:999px;color:#82778f;font-family:var(--font-ui);font-size:12px;font-weight:720;background:rgba(255,255,255,.38);border:1px solid rgba(91,80,108,.07)}
.task-edit{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;grid-column:1 / 3;align-self:start}
.task-edit input{height:42px;min-width:0;border-radius:15px;border:1px solid rgba(74,63,95,.12);padding:0 11px;background:rgba(255,255,255,.76);font-family:var(--font-ui);font-weight:650;color:var(--ink)}
.task-edit button{min-width:40px;height:42px;border-radius:999px;background:rgba(255,255,255,.62);font-family:var(--font-ui);font-weight:720;color:#736a7f;border:1px solid rgba(91,80,108,.08)}
.timer-head{display:none}
.timer-display{grid-area:time;margin:0;color:var(--ink-strong);font-family:var(--font-ui);font-size:clamp(50px,5.1vw,78px);line-height:.9;font-weight:800;letter-spacing:-.07em;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:0}
.progress-shell{position:relative;grid-area:progress;width:100%;height:12px;border-radius:999px;background:rgba(78,66,96,.055);overflow:visible;box-shadow:inset 0 1px 3px rgba(63,53,79,.05)}
.progress-bar{position:relative;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,rgba(149,133,197,.58),rgba(149,133,197,.18));transition:width 180ms cubic-bezier(.2,.9,.25,1.05),background .2s ease;will-change:width}
.progress-bar::after{content:"";position:absolute;right:-15px;top:0;width:30px;height:24px;background:var(--crown-asset, url("assets/crown-idle.png")) center/contain no-repeat;filter:drop-shadow(0 5px 9px rgba(92,80,118,.16));transform:translateY(-64%) rotate(-2deg);transform-origin:52% 78%;opacity:.96;will-change:transform}
.progress-shell::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),rgba(79,69,96,.045) calc(25% - 1px),rgba(79,69,96,.045) 25%);pointer-events:none}
.timer-panel.ended .progress-bar{background:rgba(120,112,130,.24)}
.timer-panel.ended .progress-bar::after{opacity:.62;filter:grayscale(.12) opacity(.72) drop-shadow(0 4px 7px rgba(92,80,118,.10))}
.timer-panel.running .progress-bar{transition:width 180ms cubic-bezier(.2,.9,.25,1.05),background .2s ease}
.timer-controls{grid-area:controls;display:grid;grid-template-columns:50px 50px minmax(76px,88px) minmax(88px,1fr);gap:8px;align-items:center;justify-content:stretch;width:100%;padding-right:0}
.mini-preset,.timer-controls input,.timer-main,.timer-reset{height:46px;border-radius:999px;border:1px solid var(--line-soft);background:rgba(255,255,255,.48);color:#71677e;font-weight:760}
.mini-preset{min-width:50px;padding:0}
.mini-preset:hover{background:rgba(255,255,255,.84);border-color:rgba(83,73,101,.12)}
.mini-preset.active{background:rgba(149,133,197,.18);border-color:rgba(149,133,197,.24);color:#5f5378}
.mini-preset.active:hover{background:rgba(149,133,197,.24)}
.timer-controls input{width:100%;min-width:0;text-align:center;padding:0 10px}
.timer-controls input::placeholder{color:#9d95aa}
.timer-main{min-width:116px;width:100%;background:rgba(255,255,255,.78);color:#554c61;box-shadow:0 8px 18px rgba(70,60,90,.04)}
.timer-main:hover{background:var(--purple-soft);border-color:rgba(149,133,197,.18);box-shadow:0 12px 24px rgba(70,60,90,.065)}
.timer-reset{grid-area:reset;position:static;justify-self:end;align-self:start;min-width:48px;height:36px;padding:0 10px;color:#9a92a3;background:rgba(255,255,255,.22);border-color:transparent;font-size:12px;font-weight:700;opacity:.72}
.timer-reset:hover{opacity:.96;background:rgba(255,255,255,.58);border-color:var(--line-soft)}
.timer-panel.ended .timer-display{color:#8a8295}

.sheet-backdrop{position:fixed;inset:0;z-index:60;background:rgba(38,32,49,.18);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,visibility .22s ease}
.sheet-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}
.sheet{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom) + 18px);transform:translateX(-50%) translateY(18px);width:min(720px,calc(100vw - 28px));max-height:min(72vh,620px);overflow:auto;border-radius:32px;background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.82);box-shadow:0 34px 88px rgba(60,48,78,.22);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);padding:12px 16px 18px;transition:transform .22s ease}
.sheet-backdrop.open .sheet{transform:translateX(-50%) translateY(0)}
.sheet-grip{width:40px;height:5px;border-radius:999px;background:rgba(88,79,101,.18);margin:0 auto 12px}
.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}
.sheet-head strong{font-size:22px;letter-spacing:-.035em;color:#463f52}
.sheet-block{margin-top:12px}
.sheet-block>span,.notes-label{display:block;margin:0 0 8px 4px;color:#8b8296;font-size:12px;font-weight:760;letter-spacing:.08em}
.chip-row{display:flex;gap:8px;flex-wrap:wrap}
.chip-row button{min-height:44px;padding:0 16px;border-radius:999px;background:rgba(255,255,255,.56);border:1px solid rgba(74,63,95,.105);font-weight:760;color:#62596d}
.chip-row button:hover{background:rgba(255,255,255,.84);border-color:rgba(74,63,95,.14)}
.chip-row button.active{background:#514a5e;color:#fff;border-color:transparent}
.chip-row button.active:hover{background:#5c556b}
.drawer textarea{width:100%;min-height:120px;resize:vertical;border-radius:22px;border:1px solid rgba(74,63,95,.12);background:rgba(255,255,255,.72);padding:14px;color:var(--ink);font-weight:600;line-height:1.45}
.drawer textarea::placeholder{color:#aaa2b4}
.drawer-actions{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.drawer-actions button{min-height:44px;padding:0 16px;border-radius:999px;background:rgba(255,255,255,.62);border:1px solid var(--line-soft);font-weight:720;color:#655c72}
.drawer p{margin:12px 4px 0;color:#90889a;font-size:13px;font-weight:620}
.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 24px);z-index:90;transform:translateX(-50%) translateY(16px);opacity:0;pointer-events:none;padding:12px 16px;border-radius:999px;background:rgba(68,60,82,.92);color:#fff;font-weight:780;box-shadow:0 16px 38px rgba(42,34,56,.18);transition:opacity .22s ease,transform .22s ease}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}


.flying-note{position:fixed;left:0;top:0;z-index:82;width:98px;height:66px;contain:layout paint;backface-visibility:hidden;border-radius:16px;background:linear-gradient(180deg,rgba(255,254,249,.96),rgba(248,246,255,.90));border:1px solid rgba(91,80,108,.08);box-shadow:0 10px 22px rgba(67,57,82,.075),inset 0 1px 0 rgba(255,255,255,.76);pointer-events:none;opacity:0;will-change:transform,opacity;transform-origin:50% 58%;overflow:hidden;filter:none}
.flying-note::before{content:"";position:absolute;left:17px;right:15px;top:39px;height:1px;background:rgba(119,101,143,.065);box-shadow:0 10px 0 rgba(119,101,143,.040);opacity:.82;pointer-events:none}
.flying-note::after{content:"";position:absolute;left:15px;top:11px;width:34px;height:7px;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(225,219,238,.18));border:1px solid rgba(109,96,128,.04);transform:rotate(-1.2deg);opacity:.78;pointer-events:none}
.flying-note span{position:absolute;left:18px;top:19px;width:7px;height:7px;border-radius:999px;background:rgba(149,133,197,.13)}
.flying-note strong{position:absolute;left:29px;right:15px;top:16px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#665d71;font-family:var(--font-hand);font-size:12px;line-height:1.32;font-weight:500;letter-spacing:0;opacity:.78}
.flying-note i{display:none}
.flying-note.is-reading,.flying-note.is-done{box-shadow:0 11px 23px rgba(67,57,82,.080),inset 0 1px 0 rgba(255,255,255,.76)}
.paper-ball{position:fixed;left:0;top:0;z-index:83;width:42px;height:36px;contain:layout paint;backface-visibility:hidden;border-radius:50% 44% 53% 47%;background:linear-gradient(145deg,rgba(255,254,249,.95),rgba(241,238,249,.84));border:1px solid rgba(91,80,108,.075);box-shadow:0 8px 16px rgba(67,57,82,.075),inset 2px 2px 0 rgba(255,255,255,.46),inset -3px -3px 5px rgba(96,82,120,.045);pointer-events:none;opacity:0;will-change:transform,opacity;filter:none;overflow:hidden}
.paper-ball::before{content:"";position:absolute;left:9px;right:8px;top:11px;height:13px;border-top:1px solid rgba(114,98,139,.12);border-left:1px solid rgba(114,98,139,.075);border-radius:50%;transform:rotate(-18deg);opacity:.55}
.paper-ball::after{content:"";position:absolute;right:8px;top:9px;width:16px;height:15px;border-right:1px solid rgba(114,98,139,.105);border-bottom:1px solid rgba(114,98,139,.075);border-radius:45%;transform:rotate(24deg);opacity:.50}
.mascot-slot.reading-note .mascot-overlay,.mascot-slot.done-note .mascot-overlay,.mascot-slot.toss-note .mascot-overlay{display:none!important;opacity:0!important;visibility:hidden!important}
@keyframes slideIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes noteStickIn{from{opacity:0;transform:translateY(calc(var(--note-offset,0) + 8px)) rotate(calc(var(--note-rot,0deg) - 1.5deg)) scale(.98)}to{opacity:1;transform:translateY(var(--note-offset,0)) rotate(var(--note-rot,0deg)) scale(1)}}
@keyframes noteCrumple{0%{opacity:1;border-radius:18px;box-shadow:0 10px 22px rgba(68,57,84,.045),inset 0 1px 0 rgba(255,255,255,.72);transform:translateY(var(--note-offset,0)) rotate(var(--note-rot,0deg)) scale(1)}16%{opacity:1;border-radius:20px 16px 19px 17px;box-shadow:0 9px 20px rgba(68,57,84,.05),inset 0 1px 0 rgba(255,255,255,.68);transform:translateY(calc(var(--note-offset,0) - 1px)) rotate(calc(var(--note-rot,0deg) - 2deg)) scale(1.01)}42%{opacity:.96;border-radius:29px 20px 31px 23px;box-shadow:0 8px 17px rgba(68,57,84,.06),inset 2px 1px 0 rgba(255,255,255,.42);transform:translateY(calc(var(--note-offset,0) + 1px)) rotate(calc(var(--note-rot,0deg) + 4deg)) scale(.88)}72%{opacity:.70;border-radius:48% 42% 54% 46%;box-shadow:0 6px 14px rgba(68,57,84,.06),inset 2px 2px 4px rgba(255,255,255,.34),inset -3px -2px 5px rgba(96,82,120,.04);transform:translateY(calc(var(--note-offset,0) - 4px)) rotate(calc(var(--note-rot,0deg) - 12deg)) scale(.44)}100%{opacity:0;border-radius:50%;box-shadow:0 4px 10px rgba(68,57,84,.035),inset 2px 2px 4px rgba(255,255,255,.28);transform:translateY(calc(var(--note-offset,0) - 10px)) rotate(calc(var(--note-rot,0deg) + 22deg)) scale(.18)}}
@keyframes noteLinesCrumple{0%{opacity:.72;transform:translateZ(0) scale(1)}38%{opacity:.44;transform:translateY(-1px) rotate(-6deg) scale(.78)}72%{opacity:.18;transform:translateY(2px) rotate(12deg) scale(.48)}100%{opacity:0;transform:translateY(5px) rotate(18deg) scale(.30)}}
@keyframes noteTextVanish{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.86)}}
@keyframes tapeFold{0%{opacity:1;transform:translateX(-50%) rotate(calc(var(--note-rot,0deg) * -0.55)) scale(1)}100%{opacity:0;transform:translateX(-50%) translateY(12px) rotate(18deg) scale(.35)}}
@keyframes noteSweepToArchive{0%{opacity:1;transform:translateY(var(--note-offset,0)) rotate(var(--note-rot,0deg)) scale(1)}100%{opacity:0;transform:translate3d(var(--sweep-x,18px),calc(var(--note-offset,0) + var(--sweep-y,-16px)),0) rotate(calc(var(--note-rot,0deg) + .8deg)) scale(.965)}}
@keyframes noteSweepLinesToArchive{0%{opacity:.72;transform:translateZ(0)}100%{opacity:.12;transform:translate3d(5px,-2px,0) scale(.96)}}
@keyframes tapeSweepToArchive{0%{opacity:1;transform:translateX(-50%) rotate(calc(var(--note-rot,0deg) * -0.45)) scale(1)}100%{opacity:.18;transform:translateX(calc(-50% + var(--sweep-x,18px))) translateY(calc(var(--sweep-y,-16px) * .45)) rotate(3deg) scale(.92)}}
@keyframes noteSweepInkToArchive{0%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:1;transform:translateY(0) scale(1)}}


@media (min-width:1180px) and (orientation:landscape){
  .timer-panel{grid-template-columns:minmax(0,1fr) auto;column-gap:12px;padding:19px 22px 18px 24px}
  .timer-display{font-size:clamp(58px,5.6vw,82px)}
  .timer-controls{grid-template-columns:58px 58px minmax(88px,104px) minmax(104px,1fr);gap:10px}
  .mini-preset{min-width:58px}
  .timer-controls input{width:100%;padding:0 10px}
  .timer-main{min-width:116px}
}

@media (orientation:portrait), (max-width:900px){
  body{overflow:auto}
  .app{min-height:100dvh;padding:calc(env(safe-area-inset-top) + 14px) 14px calc(env(safe-area-inset-bottom) + 18px)}
  .app-shell{height:auto;min-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px);grid-template-rows:auto 1fr}
  .desk{display:flex;flex-direction:column;gap:12px;align-content:stretch}
  .upper-row{display:flex;flex-direction:column;gap:12px}
  .compose-card{min-height:220px}
  .g-card{min-height:220px;padding:0}
  .shelf{display:flex;flex-direction:column;gap:14px;border-radius:0;background:transparent}
  .tasks-panel{min-height:190px;transform:none}
  .timer-panel{transform:none;min-height:182px;grid-template-columns:minmax(160px,1fr) auto}
  .timer-display{font-size:72px}
  .g-text{left:22px;top:72px;width:min(350px,56%);max-width:350px}
  .bubble-word{right:calc(var(--mascot-w) * .48);top:38px}
  .mascot-slot{width:286px;max-width:45%;height:100%;right:6px}
  .mascot-slot img{width:98%;right:-2%;bottom:-8px}
  .line-row h1{font-size:48px}
  .topbar{position:relative;z-index:4}
  .entry-hero{width:66vw;right:50%;transform:translateX(50%);bottom:160px;opacity:.7}
  .entry-copy{left:24px;right:24px;top:70px}
  .star-track{left:24px;width:calc(100vw - 48px);bottom:64px}
}

@media (max-width:640px){
  .timer-panel{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto 5px;grid-template-areas:"time" "controls" "progress";gap:12px;align-items:start}
  .timer-controls{grid-template-columns:50px 50px 78px minmax(82px,1fr);width:100%;justify-content:stretch;padding-right:0}
  .timer-reset{top:14px;right:14px}
}

@media (max-width:560px){
  .app{padding-left:10px;padding-right:10px}
  .topbar{gap:8px;align-items:flex-start}
  .brandline{font-size:13px;max-width:50vw;line-height:1.25}
  .top-actions{gap:6px}
  .top-button{min-height:44px;padding:0 12px;font-size:13px}
  .compose-card{padding:20px;border-radius:28px;min-height:206px}
  .line-row h1{font-size:38px}
  .composer{grid-template-columns:1fr}
  .composer input,.composer button{height:52px;width:100%}
  .thin-copy{font-size:16px}
  .g-card{padding:18px;border-radius:30px;min-height:132px;display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:center}
  .g-card::before{display:none}
  .mascot-slot{position:relative;right:auto;bottom:auto;grid-column:1;width:76px;max-width:76px;height:76px;border-radius:24px;background:rgba(255,255,255,.45);border:1px solid rgba(76,66,92,.06)}
  .mascot-slot img{width:116px;right:-20px;bottom:-8px}
  .mascot-slot::after{display:none}
  .g-text{grid-column:2;grid-row:1;width:auto;max-width:none;gap:8px;padding-top:0}
  .bubble-word{min-height:34px;padding:6px 12px;font-size:14px;justify-self:start;margin-right:0}
  .bubble-word::after{right:10px;bottom:-7px;width:12px;height:12px}
  .speech-card{padding:14px 16px 12px 16px;border-radius:22px;max-width:none}
  .speech-card::after{right:16px;bottom:-8px;width:14px;height:14px}
  .g-text h2{font-size:26px}
  .directive-text{font-size:14px;max-width:none}
    .tasks-panel,.timer-panel{padding:16px}
  .panel-head h2{font-size:24px}
  .task-list{grid-template-columns:1fr;padding:9px 6px 6px}
  .task-row,.task-note{grid-template-columns:30px minmax(0,1fr);min-height:104px;padding:15px 12px 11px}
  .task-actions{grid-column:1 / 3;justify-content:flex-end;margin-top:0}
  .timer-display{font-size:66px}
  .timer-controls input{width:100%}
  .sheet{border-radius:28px;width:calc(100vw - 18px);bottom:calc(env(safe-area-inset-bottom) + 9px)}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

.mascot-slot.is-tappable:hover img{transform:translateY(-2px) scale(1.006)}
.mascot-slot.is-tappable:active img{transform:translateY(1px) scale(.992)}
#gCard:focus-within .speech-card,#gCard:hover .speech-card{box-shadow:inset 0 0 0 2px rgba(181,175,194,.30),0 18px 36px rgba(70,58,90,.065)}

@media (max-width:560px){
  .note-receive-pad{display:none}
  .flying-note{width:78px;height:52px;border-radius:13px}
  .flying-note::before{left:14px;right:12px;top:32px;box-shadow:0 8px 0 rgba(119,101,143,.035)}
  .flying-note::after{left:12px;top:9px;width:28px;height:6px}
  .flying-note span{left:14px;top:16px;width:6px;height:6px}
  .flying-note strong{left:24px;right:12px;top:13px;font-size:11px}
  .g-card{display:grid;grid-template-columns:76px minmax(0,1fr);padding:18px}
  .bubble-word{position:absolute;right:22px;top:12px;min-height:32px;padding:5px 11px;font-size:13px}
  .bubble-word::after{right:12px;bottom:-6px;width:11px;height:11px}
  .g-text{position:relative;left:auto;top:auto;grid-column:2;grid-row:1;width:auto;max-width:none;z-index:4}
  .speech-card{width:100%;max-width:none;padding:14px 16px 12px 16px;border-radius:22px}
  .speech-card::after{right:18px;bottom:-8px;width:14px;height:14px}
  .g-text h2{font-size:24px;max-width:none}
  .directive-text{font-size:14px;max-width:none}
}

.compose-card,.g-card,.tasks-panel,.timer-panel{backdrop-filter:blur(26px) saturate(1.02);-webkit-backdrop-filter:blur(26px) saturate(1.02)}
.compose-card::after,.tasks-panel::after,.timer-panel::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,0) 38%);opacity:.9}
.g-card::after{content:none;display:none}
.compose-card > *, .tasks-panel > *, .timer-panel > *{position:relative;z-index:1}
.g-card::before,.g-card::after{display:none!important}
.g-card .bubble-word{position:absolute;z-index:6}
.g-card .g-text{position:absolute;z-index:5}
.g-card .mascot-slot{position:absolute;z-index:3}

.upper-row > .compose-card{border-radius:34px 28px 36px 30px}
.upper-row > .g-card{border-radius:30px 36px 28px 34px}

@media (max-width:560px){
  .g-card .mascot-slot{position:relative;right:auto;bottom:auto;z-index:3}
  .g-card .g-text{position:relative;left:auto;top:auto;z-index:5}
  .g-card .bubble-word{position:absolute;z-index:6}
}


/* v11.6.20 font pass: UI stays sans; princess notes get a restrained handwritten fallback. */
#directiveTitle{font-family:var(--font-hand);font-size:clamp(20px,2.1vw,22px);line-height:1.28;font-weight:500;letter-spacing:.01em}
#directiveText,.directive-text{font-family:var(--font-hand);font-size:15px;line-height:1.62;font-weight:400;letter-spacing:.005em}
.bubble-word,.task-note,.task-title,.task-meta,.flying-note strong,.empty-task{font-synthesis-weight:none}
.task-actions button,.task-edit input,.task-edit button,.task-check{font-family:var(--font-ui)}
#composeHint,
#taskPanelTitle,
#taskPanelTitle .task-meta{
  font-family:var(--font-hand);
  font-synthesis-weight:none;
  font-weight:500;
  letter-spacing:.01em;
}
#taskPanelTitle .task-meta{font-weight:400;line-height:1.4}

/* v11.6.20 final font scope guards */
.flying-note,#composeHint,#taskPanelTitle{font-family:var(--font-hand)}
#composeHint{font-weight:400;letter-spacing:.004em}
#taskPanelTitle{font-weight:500;letter-spacing:.004em}
#taskPanelTitle .task-meta{font-weight:400;letter-spacing:.018em}
.timer-display,.timer-controls,.timer-controls input,.timer-controls button,.topbar,.top-button,.composer input,.composer button,.sheet,.drawer,.toast{font-family:var(--font-ui)}

/* v11.6.21: 番茄钟不再是独立计时器，改成绑定左下纸条的公主G值班钟。 */
.timer-panel{
  overflow:visible;
  border-radius:34px 30px 28px 36px;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:auto auto minmax(46px,1fr) auto 10px;
  grid-template-areas:"head" "paper" "time" "controls" "progress";
  align-content:stretch;
  row-gap:8px;
  padding:16px 22px 18px 24px;
  background:
    radial-gradient(circle at 88% 18%,rgba(149,133,197,.13),transparent 31%),
    linear-gradient(180deg,rgba(255,255,255,.58),rgba(255,255,255,.34));
}
.timer-panel::before{
  content:"";
  position:absolute;
  inset:11px 14px 13px;
  border-radius:27px 24px 23px 29px;
  background:linear-gradient(135deg,rgba(255,255,255,.20),rgba(255,255,255,0) 48%,rgba(124,111,151,.045));
  pointer-events:none;
  z-index:0;
}
.timer-panel.has-bound{
  border-color:rgba(149,133,197,.18);
  box-shadow:0 19px 46px rgba(62,52,77,.068), inset 0 1px 0 rgba(255,255,255,.40);
}
.timer-panel.is-empty .timer-display{color:#7e768a;opacity:.70}
.timer-head{
  grid-area:head;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:28px;
}
.timer-head span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#83798f;
  font-family:var(--font-hand);
  font-size:13px;
  line-height:1.2;
  font-weight:500;
  letter-spacing:.02em;
}
.timer-head .text-action{
  min-height:30px;
  padding:0 10px;
  font-size:12px;
  color:#6e637c;
  background:rgba(255,255,255,.50);
}
.timer-paper-strip{
  grid-area:paper;
  min-height:43px;
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:8px;
  padding:7px 12px 8px 11px;
  border-radius:16px 19px 15px 18px;
  background:
    linear-gradient(180deg,rgba(255,253,246,.82),rgba(248,244,236,.62)),
    rgba(255,255,255,.42);
  border:1px solid rgba(132,118,96,.085);
  box-shadow:0 10px 21px rgba(70,58,90,.04), inset 0 1px 0 rgba(255,255,255,.62);
  transform:rotate(-.35deg);
  transform-origin:48% 50%;
}
.strip-pin{
  grid-row:1 / 4;
  width:24px;
  height:24px;
  border-radius:999px;
  display:grid;
  place-items:center;
  color:#817493;
  font-size:14px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(91,80,108,.08);
  box-shadow:0 5px 12px rgba(70,58,90,.04);
}
.timer-paper-strip strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#4f475c;
  font-family:var(--font-hand);
  font-size:15px;
  line-height:1.22;
  font-weight:500;
  letter-spacing:.006em;
}
.timer-paper-strip small{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#92899b;
  font-family:var(--font-hand);
  font-size:11px;
  line-height:1.15;
  font-weight:400;
  letter-spacing:.01em;
}
.timer-paper-strip.is-empty{
  opacity:.78;
  background:linear-gradient(180deg,rgba(255,255,255,.56),rgba(246,243,248,.36));
  border-style:dashed;
  transform:rotate(.25deg);
}
.timer-paper-strip.is-running{
  border-color:rgba(149,133,197,.20);
  box-shadow:0 11px 23px rgba(116,101,151,.07), inset 0 1px 0 rgba(255,255,255,.68);
}
.timer-paper-strip.is-ended{
  background:linear-gradient(180deg,rgba(255,253,244,.92),rgba(245,239,224,.68));
  border-color:rgba(139,126,91,.14);
}
.timer-display{
  grid-area:time;
  align-self:center;
  font-size:clamp(48px,4.55vw,70px);
  line-height:.86;
}
.timer-controls{
  grid-area:controls;
  grid-template-columns:46px 46px minmax(70px,82px) minmax(82px,1fr) 46px;
  gap:7px;
}
.mini-preset,.timer-controls input,.timer-main,.timer-reset{height:42px}
.timer-main{min-width:82px}
.timer-reset{
  grid-area:auto;
  justify-self:stretch;
  align-self:center;
  min-width:42px;
  height:42px;
  padding:0;
  font-size:12px;
  background:rgba(255,255,255,.38);
}
.progress-shell{grid-area:progress;height:10px}
.timer-panel.is-empty .progress-bar{background:rgba(132,123,145,.16)}
.timer-panel.is-empty .progress-bar::after{opacity:.42;filter:grayscale(.18) opacity(.72) drop-shadow(0 3px 6px rgba(92,80,118,.08))}

.task-note.timer-bound{
  z-index:4;
  border-color:rgba(149,133,197,.22);
  box-shadow:0 15px 29px rgba(85,71,111,.105),0 2px 5px rgba(68,57,84,.035),inset 0 1px 0 rgba(255,255,255,.78);
  transform:translateY(calc(var(--note-offset,0) - 5px)) rotate(calc(var(--note-rot,0deg) * .35)) scale(1.018);
}
.task-note.timer-bound:hover{
  transform:translateY(calc(var(--note-offset,0) - 7px)) rotate(calc(var(--note-rot,0deg) * .25)) scale(1.022);
}
.task-note.timer-bound::before{
  opacity:.92;
}
.task-note.timer-bound::after{
  top:-12px;
  width:54px;
  height:15px;
  background:linear-gradient(180deg,rgba(245,239,222,.68),rgba(203,190,151,.28));
  border-color:rgba(112,99,76,.10);
  box-shadow:0 5px 12px rgba(68,57,84,.05);
}
.task-note.timer-bound .task-check{
  color:#6b5f82;
  background:rgba(255,255,255,.82);
  border-color:rgba(149,133,197,.20);
  box-shadow:0 7px 15px rgba(84,72,112,.07);
}
.task-note.timer-ready .task-check{
  color:#5f5570;
  background:rgba(255,253,244,.92);
  animation:readyCheckPulse 1.25s ease-in-out infinite;
}
.task-duty-badge{
  position:absolute!important;
  right:8px;
  top:-12px;
  z-index:4!important;
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:0 8px;
  border-radius:999px;
  color:#6b607b;
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:780;
  letter-spacing:.02em;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(149,133,197,.18);
  box-shadow:0 7px 15px rgba(70,58,90,.07);
}
.task-note.timer-ready .task-duty-badge{
  color:#74664d;
  background:rgba(255,250,235,.92);
  border-color:rgba(161,143,93,.18);
}
.task-pin-action{min-width:42px!important}
.task-note.timer-bound .task-pin-action{
  color:#5f5475;
  background:rgba(149,133,197,.14);
  border-color:rgba(149,133,197,.22);
}
@keyframes readyCheckPulse{
  0%,100%{transform:translateZ(0) scale(1);box-shadow:0 7px 15px rgba(84,72,112,.07)}
  45%{transform:translateY(-1px) scale(1.045);box-shadow:0 10px 20px rgba(126,108,74,.12)}
}

@media (orientation:portrait), (max-width:900px){
  .timer-panel{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto 10px;grid-template-areas:"head" "paper" "time" "controls" "progress";row-gap:9px;min-height:210px;padding:16px 18px 18px}
  .timer-display{font-size:clamp(58px,10vw,72px)}
  .timer-controls{grid-template-columns:48px 48px minmax(76px,90px) minmax(82px,1fr) 46px}
}

@media (max-width:640px){
  .timer-panel{grid-template-columns:1fr;grid-template-rows:auto auto auto auto 8px;grid-template-areas:"head" "paper" "time" "controls" "progress";gap:9px;padding:15px 15px 16px}
  .timer-display{font-size:60px}
  .timer-paper-strip{min-height:42px;padding:7px 10px 8px}
  .timer-controls{grid-template-columns:42px 42px minmax(60px,72px) minmax(76px,1fr) 42px;gap:6px}
  .mini-preset,.timer-controls input,.timer-main,.timer-reset{height:40px}
  .task-duty-badge{right:6px;top:-10px}
}

@media (max-width:420px){
  .timer-controls{grid-template-columns:39px 39px minmax(54px,64px) minmax(68px,1fr) 39px;gap:5px}
  .timer-display{font-size:54px}
  .timer-paper-strip strong{font-size:14px}
  .timer-paper-strip small{font-size:10px}
  .task-actions button{min-width:31px;padding-inline:7px}
  .task-pin-action{min-width:38px!important}
}

/* v11.6.23: iPad 细修。只收紧下排安全区与左上“换”的视觉权重，不改结构。 */
.line-row{
  align-items:flex-start;
}
#pickerToggle{
  align-self:flex-start;
  min-height:30px;
  margin-top:6px;
  padding:0 8px 0 7px;
  gap:3px;
  border-radius:999px;
  font-size:12px;
  line-height:1;
  font-weight:620;
  color:rgba(104,96,117,.58);
  background:rgba(255,255,255,.24);
  border-color:rgba(82,72,100,.045);
  box-shadow:none;
  letter-spacing:.01em;
}
#pickerToggle::before{
  font-size:10px;
  color:rgba(104,96,117,.46);
  transform:translateY(-.5px) scale(.92);
}
#pickerToggle:hover{
  color:rgba(91,82,107,.72);
  background:rgba(255,255,255,.42);
  border-color:rgba(82,72,100,.075);
  box-shadow:none;
}
#pickerToggle:active,
#pickerToggle.is-pressing{
  transform:translateY(1px) scale(.965);
}

@media (min-width:641px) and (max-width:1180px){
  .compose-card{
    gap:14px;
  }
  .line-row{
    gap:8px;
  }

  .tasks-panel{
    padding:20px 18px 18px;
    overflow:hidden;
  }
  .panel-head{
    min-height:50px;
    align-items:flex-start;
    gap:10px;
    padding:0 2px 2px;
  }
  .panel-head h2{
    padding-top:2px;
    font-size:24px;
    line-height:1.16;
    letter-spacing:-.03em;
  }
  .tasks-panel .panel-head .text-action{
    min-height:34px;
    padding:0 10px;
    font-size:12px;
    font-weight:700;
    background:rgba(255,255,255,.34);
  }
  .task-list{
    height:calc(100% - 56px);
    padding:16px 7px 8px;
    gap:13px 10px;
    grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  }
  .task-row,
  .task-note{
    min-height:108px;
    padding:17px 13px 12px;
  }
  .task-note::after{
    top:-5px;
    width:38px;
    height:10px;
  }
  .task-note.timer-bound{
    transform:translateY(calc(var(--note-offset,0) - 2px)) rotate(calc(var(--note-rot,0deg) * .3)) scale(1.01);
  }
  .task-note.timer-bound:hover{
    transform:translateY(calc(var(--note-offset,0) - 3px)) rotate(calc(var(--note-rot,0deg) * .25)) scale(1.012);
  }
  .task-note.timer-bound::after{
    top:-6px;
    width:42px;
    height:11px;
  }
  .task-duty-badge{
    top:6px;
    right:7px;
    min-height:20px;
    padding:0 7px;
    font-size:10px;
    box-shadow:0 5px 11px rgba(70,58,90,.055);
  }
  .task-actions{
    gap:4px;
  }
  .task-actions button{
    min-width:32px;
    height:28px;
    font-size:11px;
  }
  .task-pin-action{
    min-width:38px!important;
  }

  .timer-panel{
    overflow:hidden;
    padding:20px 20px 18px;
    row-gap:10px;
    align-content:stretch;
  }
  .timer-panel::before{
    inset:12px 13px 13px;
  }
  .timer-head{
    min-height:32px;
    padding:0 2px;
    align-items:flex-start;
  }
  .timer-head span{
    padding-top:4px;
    font-size:12px;
  }
  .timer-head .text-action{
    min-height:28px;
    padding:0 9px;
    font-size:11px;
    background:rgba(255,255,255,.34);
  }
  .timer-paper-strip{
    min-height:48px;
    padding:8px 12px 9px 11px;
    transform:rotate(-.22deg);
  }
  .timer-display{
    margin-top:3px;
    align-self:center;
  }
  .timer-controls{
    grid-template-columns:44px 44px minmax(70px,80px) minmax(82px,1fr) 42px;
    gap:6px;
  }
  .mini-preset,
  .timer-controls input,
  .timer-main,
  .timer-reset{
    height:40px;
  }
}

@media (min-width:901px) and (max-width:1180px) and (orientation:landscape){
  .desk{
    grid-template-rows:minmax(286px,.9fr) minmax(238px,.74fr);
    gap:18px;
  }
  .shelf{
    grid-template-columns:minmax(0,.94fr) minmax(500px,1.05fr);
    gap:22px;
  }
  .tasks-panel{
    transform:translateY(6px);
  }
  .timer-panel{
    transform:translateY(-4px);
    min-width:0;
    min-height:226px;
  }
  .timer-display{
    font-size:clamp(50px,5.8vw,68px);
  }
}

@media (min-width:641px) and (max-width:900px){
  .shelf{
    gap:18px;
  }
  .tasks-panel,
  .timer-panel{
    transform:none;
  }
  .tasks-panel{
    min-height:216px;
  }
  .timer-panel{
    min-height:224px;
  }
}

/* v11.6.24: 只修右上气泡关系与左上“换”角标，不动布局和业务逻辑。 */
#gCard .g-text{
  overflow:visible;
}
#gCard .speech-card{
  overflow:visible;
  isolation:isolate;
}
#gCard .speech-card h2,
#gCard #directiveTitle{
  padding-right:58px;
}
#gCard .g-text .bubble-word{
  position:absolute;
  z-index:7;
  top:-15px;
  right:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:4px 10px 5px;
  border-radius:999px;
  color:rgba(101,92,116,.72);
  background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(250,248,253,.68));
  border:1px solid rgba(92,82,110,.08);
  box-shadow:0 7px 15px rgba(70,58,90,.032),inset 0 1px 0 rgba(255,255,255,.68);
  font-family:var(--font-hand);
  font-size:13px;
  line-height:1.1;
  font-weight:500;
  letter-spacing:.01em;
  transform:rotate(.45deg);
  pointer-events:none;
}
#gCard .g-text .bubble-word::after{
  content:none!important;
  display:none!important;
}
#gCard .speech-card::after{
  right:52px;
  bottom:-13px;
  width:20px;
  height:20px;
  transform:rotate(-12deg) skewX(18deg);
}

.compose-card{
  position:relative;
}
.line-row{
  position:relative;
  display:inline-flex;
  align-items:flex-start;
  align-self:flex-start;
  max-width:100%;
  width:auto;
  padding-right:42px;
  gap:0;
}
.line-row h1{
  display:block;
  width:auto;
  flex:0 1 auto;
  max-width:100%;
  min-width:0;
  padding-right:0;
}
#pickerToggle{
  position:absolute;
  right:1px;
  top:8px;
  z-index:3;
  align-self:auto;
  min-height:22px;
  margin:0;
  padding:0 6px 0 5px;
  gap:2px;
  border-radius:999px;
  font-size:11px;
  line-height:1;
  font-weight:560;
  color:rgba(98,90,112,.52);
  background:rgba(255,255,255,.08);
  border-color:rgba(82,72,100,.03);
  box-shadow:none;
  opacity:.52;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
#pickerToggle::before{
  font-size:9px;
  color:rgba(98,90,112,.40);
  transform:translateY(-.5px) scale(.86);
}
#pickerToggle:hover{
  color:rgba(91,82,107,.72);
  background:rgba(255,255,255,.30);
  border-color:rgba(82,72,100,.065);
  box-shadow:none;
  opacity:.84;
}
#pickerToggle:active,
#pickerToggle.is-pressing{
  transform:translateY(1px) scale(.94);
}

@media (min-width:641px) and (max-width:1180px){
  #gCard .speech-card h2,
  #gCard #directiveTitle{
    padding-right:52px;
  }
  #gCard .g-text .bubble-word{
    top:-14px;
    right:12px;
    min-height:27px;
    padding:4px 9px;
    font-size:12px;
    transform:rotate(.35deg);
  }
  #gCard .speech-card::after{
    right:44px;
    bottom:-12px;
    width:18px;
    height:18px;
  }
  .line-row{
    padding-right:38px;
  }
  .line-row h1{
    padding-right:0;
  }
  #pickerToggle{
    top:6px;
    right:0;
    min-height:22px;
    padding-inline:5px 6px;
    font-size:10.5px;
  }
}

@media (orientation:portrait), (max-width:900px){
  #gCard .g-text .bubble-word{
    top:-13px;
    right:10px;
  }
}

@media (max-width:560px){
  #gCard .speech-card{
    padding-top:15px;
  }
  #gCard .speech-card h2,
  #gCard #directiveTitle{
    padding-right:46px;
  }
  #gCard .g-text .bubble-word{
    top:-12px;
    right:9px;
    min-height:25px;
    padding:4px 8px;
    font-size:12px;
    transform:rotate(.25deg);
  }
  #gCard .speech-card::after{
    right:22px;
    bottom:-8px;
    width:14px;
    height:14px;
  }
  .line-row{
    padding-right:34px;
  }
  .line-row h1{
    padding-right:0;
  }
  #pickerToggle{
    top:4px;
    right:0;
    min-height:21px;
    padding-inline:5px;
    font-size:10px;
    opacity:.50;
  }
  #pickerToggle::before{
    font-size:8px;
  }
}

/* v11.6.25: 只收纸条钉住关系、右上气泡安全区、投递/钉住微交互。 */
:root{--motion-soft:cubic-bezier(.22,.61,.36,1)}

/* 左下纸条：钉住状态回到底部按钮，不再额外悬浮标签。 */
.task-duty-badge{display:none!important}
.task-row,
.task-note{
  transition:transform .22s var(--motion-soft),opacity .18s ease,border-color .22s var(--motion-soft),box-shadow .22s var(--motion-soft),background .22s var(--motion-soft);
}
.task-note::after{
  top:-6px;
  width:40px;
  height:10px;
  background:linear-gradient(180deg,rgba(255,255,255,.46),rgba(225,219,238,.18));
  border-color:rgba(109,96,128,.045);
  box-shadow:0 4px 9px rgba(68,57,84,.022);
  opacity:.82;
}
.task-note.timer-bound,
.task-note.pin-staging{
  border-color:rgba(149,133,197,.20);
  background:linear-gradient(180deg,rgba(255,254,249,.92),rgba(249,247,255,.82));
  box-shadow:0 13px 25px rgba(85,71,111,.082),0 2px 5px rgba(68,57,84,.026),inset 0 1px 0 rgba(255,255,255,.78);
  transform:translateY(calc(var(--note-offset,0) - 3px)) rotate(calc(var(--note-rot,0deg) * .35)) scale(1.01);
}
.task-note.timer-bound:hover,
.task-note.pin-staging:hover{
  transform:translateY(calc(var(--note-offset,0) - 4px)) rotate(calc(var(--note-rot,0deg) * .28)) scale(1.012);
}
.task-note.timer-bound::after,
.task-note.pin-staging::after,
.task-note.pin-settle::after{
  top:-6px;
  width:40px;
  height:10px;
  background:linear-gradient(180deg,rgba(255,255,255,.46),rgba(225,219,238,.18));
  border-color:rgba(109,96,128,.045);
  box-shadow:0 4px 9px rgba(68,57,84,.022);
}
.task-note.pin-settle{animation:pinSettle 280ms var(--motion-soft) both}
.task-actions{
  align-items:center;
  gap:6px;
  min-height:30px;
  padding-top:2px;
  flex-wrap:nowrap;
}
.task-actions button{
  min-width:34px;
  padding-inline:9px;
  transition:transform .16s var(--motion-soft),background-color .18s var(--motion-soft),border-color .18s var(--motion-soft),color .18s var(--motion-soft),box-shadow .18s var(--motion-soft),opacity .18s var(--motion-soft);
}
.task-pin-action{min-width:46px!important}
.task-pin-action.is-active,
.task-pin-action.is-staging,
.task-note.timer-bound .task-pin-action,
.task-note.pin-staging .task-pin-action{
  color:#5f5475;
  background:rgba(149,133,197,.15);
  border-color:rgba(149,133,197,.24);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.52),0 6px 13px rgba(85,71,111,.046);
}
.task-note.timer-ready .task-pin-action{
  color:#73634b;
  background:rgba(255,249,229,.86);
  border-color:rgba(161,143,93,.20);
}
.task-note.pin-staging .task-pin-action,
.task-note.pin-settle .task-pin-action{transform:translateY(-1px)}
.task-note.just-stuck{animation:noteStickIn 160ms var(--motion-soft) both}

/* 右上：批示卡、状态标签、公主G三者分层；给头顶和皇冠留出安全区。 */
#gCard{--mascot-w:min(338px,46%)}
#gCard .g-text{
  left:28px;
  top:88px;
  width:min(318px,calc(100% - var(--mascot-w) - 28px));
  max-width:318px;
  overflow:visible;
}
#gCard .speech-card{
  overflow:visible;
  isolation:isolate;
  padding:18px 22px 16px 22px;
  border-radius:30px;
}
#gCard .speech-card h2,
#gCard #directiveTitle{padding-right:46px}
#gCard .g-text .bubble-word{
  top:-14px;
  right:8px;
  min-height:26px;
  padding:4px 9px;
  border-radius:999px;
  font-size:12px;
  line-height:1.1;
  color:rgba(101,92,116,.68);
  background:linear-gradient(180deg,rgba(255,255,255,.84),rgba(250,248,253,.66));
  border-color:rgba(92,82,110,.075);
  box-shadow:0 6px 13px rgba(70,58,90,.028),inset 0 1px 0 rgba(255,255,255,.64);
  transform:rotate(.28deg);
}
#gCard .g-text .bubble-word::after{content:none!important;display:none!important}
#gCard .speech-card::after{
  right:76px;
  bottom:-10px;
  width:16px;
  height:16px;
  opacity:.76;
  transform:rotate(-11deg) skewX(18deg);
  box-shadow:2px 2px 0 0 rgba(181,175,194,.20);
}
#gCard .note-receive-pad{
  right:calc(var(--mascot-w) * .30);
  bottom:clamp(24px,7%,38px);
  width:72px;
  height:38px;
}
.flying-note{
  width:94px;
  height:63px;
  transition:box-shadow .18s var(--motion-soft),filter .18s var(--motion-soft);
}
.flying-note.is-reading,
.flying-note.is-done{box-shadow:0 12px 24px rgba(67,57,82,.075),inset 0 1px 0 rgba(255,255,255,.78)}
.mascot-slot.state-settle img{animation:mascotSoftSettle 240ms var(--motion-soft) both}

@keyframes pinSettle{
  0%{transform:translateY(calc(var(--note-offset,0) + 1px)) rotate(var(--note-rot,0deg)) scale(.995)}
  62%{transform:translateY(calc(var(--note-offset,0) - 4px)) rotate(calc(var(--note-rot,0deg) * .45)) scale(1.012)}
  100%{transform:translateY(calc(var(--note-offset,0) - 3px)) rotate(calc(var(--note-rot,0deg) * .35)) scale(1.01)}
}
@keyframes noteStickIn{
  0%{opacity:0;transform:translateY(calc(var(--note-offset,0) + 3px)) rotate(calc(var(--note-rot,0deg) - .8deg)) scale(.982)}
  68%{opacity:1;transform:translateY(calc(var(--note-offset,0) - .8px)) rotate(calc(var(--note-rot,0deg) + .18deg)) scale(1.006)}
  100%{opacity:1;transform:translateY(var(--note-offset,0)) rotate(var(--note-rot,0deg)) scale(1)}
}
@keyframes mascotSoftSettle{
  0%{transform:translateY(2px) scale(.996)}
  66%{transform:translateY(-1px) scale(1.004)}
  100%{transform:translateY(0) scale(1)}
}

@media (min-width:641px) and (max-width:1180px){
  .task-list{padding-top:17px}
  .task-note.timer-bound::after,
  .task-note.pin-staging::after,
  .task-note.pin-settle::after{top:-5px;width:40px;height:10px}
  .task-actions{gap:5px}
  .task-actions button{min-width:32px;height:28px;font-size:11px}
  .task-pin-action{min-width:46px!important;padding-inline:8px!important}
  #gCard .g-text{
    left:28px;
    top:88px;
    width:min(292px,calc(100% - var(--mascot-w) - 30px));
    max-width:292px;
  }
  #gCard .speech-card{padding:17px 20px 15px;border-radius:28px}
  #gCard .speech-card h2,
  #gCard #directiveTitle{padding-right:42px}
  #gCard .g-text .bubble-word{top:-13px;right:7px;min-height:25px;padding:4px 8px;font-size:12px}
  #gCard .speech-card::after{right:68px;bottom:-9px;width:15px;height:15px}
  #gCard .note-receive-pad{right:calc(var(--mascot-w) * .29);bottom:clamp(24px,6.8%,36px)}
}

@media (orientation:portrait), (max-width:900px){
  #gCard .g-text{top:82px;width:min(286px,calc(100% - var(--mascot-w) - 28px))}
  #gCard .g-text .bubble-word{top:-12px;right:7px}
  #gCard .speech-card::after{right:58px;bottom:-8px}
}

@media (max-width:560px){
  #gCard .g-text{
    position:relative;
    left:auto;
    top:auto;
    width:auto;
    max-width:none;
  }
  #gCard .speech-card{padding:15px 16px 12px;border-radius:22px}
  #gCard .speech-card h2,
  #gCard #directiveTitle{padding-right:44px}
  #gCard .g-text .bubble-word{top:-12px;right:8px;min-height:24px;padding:4px 8px;font-size:12px}
  #gCard .speech-card::after{right:34px;bottom:-7px;width:12px;height:12px}
  .task-pin-action{min-width:42px!important}
}

/* v11.6.25 safety pass: 尾巴和接纸点再避开人物头顶安全区。 */
#gCard .g-text{
  width:min(340px,calc(100% - var(--mascot-w) + 8px));
  max-width:340px;
}
#gCard .speech-card::after{
  right:auto!important;
  left:56px!important;
  bottom:-9px;
  width:15px;
  height:15px;
  opacity:.70;
  transform:rotate(31deg) skewX(-8deg);
}
#gCard .note-receive-pad{
  right:calc(var(--mascot-w) * .42);
  bottom:clamp(22px,7%,38px);
  width:70px;
  height:36px;
}
@media (min-width:641px) and (max-width:1180px){
  #gCard .g-text{
    width:min(318px,calc(100% - var(--mascot-w) + 4px));
    max-width:318px;
  }
  #gCard .speech-card::after{
    left:52px!important;
    bottom:-8px;
    width:14px;
    height:14px;
  }
}
@media (orientation:portrait), (max-width:900px){
  #gCard .speech-card::after{
    left:48px!important;
    right:auto!important;
  }
}
@media (max-width:560px){
  #gCard .speech-card::after{
    left:30px!important;
    right:auto!important;
  }
}

/* v11.6.26: 公主G盯纸正计时钟。只改计时反馈与左下轻量用时，不动四区布局。 */
.progress-bar,
.timer-panel.running .progress-bar{
  transition:width 560ms cubic-bezier(.22,.61,.36,1), background .24s ease!important;
}
.progress-bar::after{
  transform:translateY(-62%) rotate(-2deg);
  transition:transform 560ms cubic-bezier(.22,.61,.36,1), opacity .24s ease, filter .24s ease;
}
.task-focus-time{
  margin-right:auto;
  max-width:calc(100% - 132px);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  align-self:center;
  color:#8c819d;
  font-family:var(--font-hand);
  font-size:11px;
  line-height:1.2;
  font-weight:500;
  letter-spacing:.01em;
  opacity:.86;
  padding-left:2px;
}
.task-note.timer-ready .task-focus-time{
  color:#7f704f;
}
.task-note.completing .task-focus-time{
  animation:noteTextVanish 420ms ease both;
}
@media (max-width:640px){
  .task-focus-time{max-width:72px;font-size:10px}
}

/* v11.6.27: 只接入轻量皇冠/小图标素材；不改布局与正计时逻辑。 */
.progress-bar,
.timer-panel.running .progress-bar{
  transition:width 620ms cubic-bezier(.22,.61,.36,1), background .24s ease!important;
}
.progress-bar::after{
  right:-13px!important;
  top:0!important;
  width:26px!important;
  height:22px!important;
  background:var(--crown-asset, url("assets/crown-idle.png")) center/contain no-repeat!important;
  opacity:.84;
  transform:translateY(-60%) rotate(-2deg);
  transform-origin:50% 76%;
  filter:drop-shadow(0 4px 7px rgba(92,80,118,.12));
  transition:transform 620ms cubic-bezier(.22,.61,.36,1), opacity .26s ease, filter .26s ease!important;
}
.timer-panel[data-crown-state="active"] .progress-bar::after{
  opacity:.90;
  transform:translateY(-61%) rotate(1.5deg);
}
.timer-panel[data-crown-state="pin"] .progress-bar::after{
  opacity:.88;
  transform:translateY(-62%) rotate(-1deg);
}
.timer-panel[data-crown-state="done"] .progress-bar::after{
  opacity:.88;
  transform:translateY(-61%) rotate(2deg);
}
.timer-panel.has-bound:not(.running) .progress-bar::after{
  opacity:.78;
}
.timer-panel.is-empty .progress-bar::after{
  opacity:.42!important;
  filter:drop-shadow(0 3px 6px rgba(92,80,118,.08))!important;
}
.timer-panel.ended .progress-bar::after{
  opacity:.80!important;
  filter:drop-shadow(0 4px 7px rgba(92,80,118,.09))!important;
}
.timer-panel.crown-pin-feedback .progress-bar::after{
  animation:crownPinSoft 520ms cubic-bezier(.22,.61,.36,1) both;
}
.timer-panel.crown-start-feedback .progress-bar::after{
  animation:crownStartSoft 500ms cubic-bezier(.22,.61,.36,1) both;
}
.timer-panel.crown-done-feedback .progress-bar::after{
  animation:crownDoneSoft 720ms cubic-bezier(.22,.61,.36,1) both;
}
@keyframes crownPinSoft{
  0%,100%{transform:translateY(-61%) rotate(-1deg) scale(1)}
  46%{transform:translateY(calc(-61% - 2px)) rotate(2deg) scale(1.012)}
  76%{transform:translateY(calc(-61% + 1px)) rotate(-2deg) scale(.996)}
}
@keyframes crownStartSoft{
  0%,100%{transform:translateY(-61%) rotate(1.5deg) scale(1)}
  44%{transform:translateY(calc(-61% - 3px)) rotate(3deg) scale(1.016)}
  76%{transform:translateY(calc(-61% + 1px)) rotate(1deg) scale(.998)}
}
@keyframes crownDoneSoft{
  0%,100%{transform:translateY(-61%) rotate(2deg) scale(1)}
  24%{transform:translateY(calc(-61% - 2px)) rotate(4deg) scale(1.014)}
  48%{transform:translateY(calc(-61% + 1px)) rotate(-3deg) scale(.996)}
  72%{transform:translateY(calc(-61% - 1px)) rotate(3deg) scale(1.006)}
}

.task-pin-action,
.task-check{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
}
.task-pin-action{
  gap:3px;
}
.task-pin-action::before{
  content:"";
  width:14px;
  height:14px;
  flex:0 0 14px;
  background:url("assets/icon-pin.svg") center/contain no-repeat;
  opacity:.56;
  transform:translateY(-.4px) rotate(-7deg);
}
.task-pin-action.is-active::before,
.task-pin-action.is-staging::before,
.task-note.timer-bound .task-pin-action::before{
  opacity:.70;
}
.task-focus-time{
  display:inline-flex;
  align-items:center;
  gap:3px;
}
.task-focus-time::before{
  content:"";
  width:13px;
  height:13px;
  flex:0 0 13px;
  background:url("assets/icon-eye.svg") center/contain no-repeat;
  opacity:.54;
}
.task-note.timer-ready .task-focus-time::before{
  background-image:url("assets/icon-check.svg");
  opacity:.58;
}
.task-check{
  font-size:0!important;
}
.task-check::before{
  content:"";
  width:15px;
  height:15px;
  background:url("assets/icon-check.svg") center/contain no-repeat;
  opacity:.64;
}
.task-note.completing .task-check::before{
  background-image:url("assets/icon-crumple.svg");
  opacity:.48;
}
@media (max-width:640px){
  .progress-bar::after{width:23px!important;height:20px!important;right:-11px!important}
  .task-pin-action::before{width:12px;height:12px;flex-basis:12px}
  .task-focus-time::before{width:12px;height:12px;flex-basis:12px}
}


/* v11.6.28: 公主G轻微在岗。只加低幅视觉动势，不改布局、素材或盯纸钟逻辑。 */
.mascot-slot[data-mascot-state="idle"] .mascot-main,
.mascot-slot[data-mascot-state="focus"] .mascot-main{
  --princess-breath-y:1.35px;
  animation:princessDutyBreath 5.8s ease-in-out infinite;
}
.mascot-slot.focus-soft[data-mascot-state="idle"] .mascot-main,
.mascot-slot.focus-soft[data-mascot-state="focus"] .mascot-main{
  --princess-breath-y:.75px;
  animation-duration:6.1s;
}
.mascot-slot.state-settle .mascot-main{
  animation:princessReadingSettle 880ms cubic-bezier(.22,.61,.36,1) both!important;
}
@keyframes princessDutyBreath{
  0%,100%{translate:0 0}
  50%{translate:0 var(--princess-breath-y,1.35px)}
}
@keyframes princessReadingSettle{
  0%{translate:0 0}
  18%{translate:0 1.5px}
  42%{translate:0 -.45px}
  62%{translate:0 .15px}
  100%{translate:0 0}
}

.progress-bar::after{
  --crown-rest-y:-60%;
  --crown-rest-rot:-2deg;
  transform:translateY(var(--crown-rest-y)) rotate(var(--crown-rest-rot));
}
.timer-panel[data-crown-state="active"] .progress-bar::after{
  --crown-rest-y:-61%;
  --crown-rest-rot:1.5deg;
  transform:translateY(var(--crown-rest-y)) rotate(var(--crown-rest-rot));
}
.timer-panel[data-crown-state="pin"] .progress-bar::after{
  --crown-rest-y:-62%;
  --crown-rest-rot:-1deg;
  transform:translateY(var(--crown-rest-y)) rotate(var(--crown-rest-rot));
}
.timer-panel[data-crown-state="done"] .progress-bar::after{
  --crown-rest-y:-61%;
  --crown-rest-rot:2deg;
  transform:translateY(var(--crown-rest-y)) rotate(var(--crown-rest-rot));
}
.timer-panel[data-crown-state="idle"]:not(.crown-pin-feedback):not(.crown-start-feedback):not(.crown-done-feedback) .progress-bar::after,
.timer-panel[data-crown-state="active"]:not(.crown-pin-feedback):not(.crown-start-feedback):not(.crown-done-feedback) .progress-bar::after{
  animation:crownLowDutyWiggle 8.4s ease-in-out infinite;
}
.timer-panel[data-crown-state="active"]:not(.crown-pin-feedback):not(.crown-start-feedback):not(.crown-done-feedback) .progress-bar::after{
  animation-duration:7.6s;
}
@keyframes crownLowDutyWiggle{
  0%,72%,100%{transform:translateY(var(--crown-rest-y,-60%)) rotate(var(--crown-rest-rot,-2deg))}
  78%{transform:translateY(var(--crown-rest-y,-60%)) rotate(calc(var(--crown-rest-rot,-2deg) + 2.4deg))}
  84%{transform:translateY(var(--crown-rest-y,-60%)) rotate(calc(var(--crown-rest-rot,-2deg) - 2deg))}
  91%{transform:translateY(var(--crown-rest-y,-60%)) rotate(calc(var(--crown-rest-rot,-2deg) + .7deg))}
}

/* v11.6.29: 公主G关键节点反应。只加一次性轻动作，不改布局、素材、纸条或盯纸钟逻辑。 */
.mascot-slot.state-settle .mascot-main,
.mascot-slot.node-delivery .mascot-main{
  animation:princessNodeDelivery 900ms cubic-bezier(.22,.61,.36,1) both!important;
}
.mascot-slot.node-start .mascot-main{
  animation:princessNodeStart 760ms cubic-bezier(.22,.61,.36,1) both!important;
}
.mascot-slot.node-pause .mascot-main{
  animation:princessNodePause 780ms cubic-bezier(.22,.61,.36,1) both!important;
}
.mascot-slot.node-done .mascot-main{
  animation:princessNodeDone 860ms cubic-bezier(.22,.61,.36,1) both!important;
}
@keyframes princessNodeDelivery{
  0%{translate:0 0}
  18%{translate:0 1.5px}
  38%{translate:0 -.45px}
  58%{translate:0 .28px}
  82%{translate:0 .12px}
  100%{translate:0 0}
}
@keyframes princessNodeStart{
  0%{translate:0 0}
  30%{translate:0 -1.4px}
  58%{translate:0 .35px}
  100%{translate:0 0}
}
@keyframes princessNodePause{
  0%{translate:0 0}
  32%{translate:0 1.15px}
  74%{translate:0 .45px}
  100%{translate:0 0}
}
@keyframes princessNodeDone{
  0%{translate:0 0}
  22%{translate:0 -1.1px}
  46%{translate:0 1.45px}
  70%{translate:0 -.55px}
  100%{translate:0 0}
}

/* v11.6.31: 只松开右下盯纸钟层级，不改布局、计时逻辑或其他区域。 */
.timer-panel{
  grid-template-rows:auto auto minmax(62px,1fr) auto 6px;
  row-gap:14px;
  padding:18px 23px 19px 24px;
}
.timer-panel::before{
  inset:13px 15px 14px;
  opacity:.72;
}
.timer-head{
  min-height:24px;
  align-items:center;
  padding:0 1px;
}
.timer-head span{
  color:#8f8698;
  font-size:12px;
  opacity:.84;
}
.timer-head .text-action{
  min-height:25px;
  padding:0 9px;
  font-size:11px;
  color:#8a8196;
  background:rgba(255,255,255,.28);
  border-color:rgba(91,80,108,.045);
  box-shadow:none;
  opacity:.78;
}
.timer-head .text-action:hover{
  opacity:.95;
  background:rgba(255,255,255,.50);
}
.timer-paper-strip{
  min-height:38px;
  grid-template-columns:20px minmax(0,1fr);
  column-gap:7px;
  padding:6px 11px 7px 10px;
  border-radius:14px 17px 14px 16px;
  background:linear-gradient(180deg,rgba(255,253,247,.70),rgba(248,244,236,.46));
  border-color:rgba(132,118,96,.060);
  box-shadow:0 7px 16px rgba(70,58,90,.026), inset 0 1px 0 rgba(255,255,255,.56);
}
.strip-pin{
  width:20px;
  height:20px;
  font-size:12px;
  color:#8a7f98;
  background:rgba(255,255,255,.42);
  box-shadow:none;
}
.timer-paper-strip strong{
  font-size:14px;
  line-height:1.16;
  color:#554d61;
}
.timer-paper-strip small{
  margin-top:1px;
  font-size:10.5px;
  color:#9a92a2;
  opacity:.86;
}
.timer-paper-strip.is-empty{
  opacity:.66;
  background:linear-gradient(180deg,rgba(255,255,255,.48),rgba(246,243,248,.30));
}
.timer-paper-strip.is-running{
  box-shadow:0 8px 18px rgba(116,101,151,.045), inset 0 1px 0 rgba(255,255,255,.62);
}
.timer-display{
  justify-self:start;
  align-self:center;
  margin:7px 0 9px;
  font-size:clamp(54px,4.95vw,76px);
  line-height:.86;
  letter-spacing:-.075em;
}
.timer-controls{
  position:relative;
  display:grid;
  grid-template-columns:auto auto minmax(54px,72px) minmax(0,1fr) auto;
  grid-template-rows:40px 26px;
  grid-template-areas:
    ". . . main main"
    "target p25 p45 custom reset";
  align-items:center;
  gap:8px 7px;
  width:100%;
  padding:0;
}
.timer-controls::before{
  content:"目标";
  grid-area:target;
  justify-self:start;
  color:#9a91a5;
  font-size:11px;
  line-height:1;
  font-weight:650;
  letter-spacing:.02em;
  opacity:.76;
}
.mini-preset[data-min="25"]{grid-area:p25}
.mini-preset[data-min="45"]{grid-area:p45}
.timer-controls input{grid-area:custom}
.timer-main{grid-area:main}
.timer-reset{grid-area:reset}
.mini-preset,
.timer-controls input{
  height:25px!important;
  min-width:0;
  border-radius:999px;
  border-color:rgba(91,80,108,.060);
  background:rgba(255,255,255,.24);
  color:#8f849a;
  font-size:11px;
  font-weight:680;
  box-shadow:none;
  opacity:.82;
}
.mini-preset{
  width:38px;
  padding:0 7px;
}
.mini-preset.active{
  background:rgba(149,133,197,.115);
  border-color:rgba(149,133,197,.14);
  color:#706486;
  opacity:.92;
}
.mini-preset:hover,
.timer-controls input:hover,
.timer-controls input:focus{
  background:rgba(255,255,255,.46);
  border-color:rgba(91,80,108,.09);
  opacity:.96;
}
.timer-controls input{
  width:100%;
  max-width:72px;
  padding:0 8px;
  text-align:center;
}
.timer-controls input::placeholder{
  color:#a59dae;
}
.timer-main{
  justify-self:end;
  width:auto;
  min-width:118px;
  height:40px!important;
  padding:0 20px;
  border-radius:999px;
  background:rgba(255,255,255,.74);
  border-color:rgba(91,80,108,.075);
  color:#574e63;
  font-size:14px;
  font-weight:780;
  box-shadow:0 8px 18px rgba(70,60,90,.040);
}
.timer-main:hover{
  background:rgba(255,255,255,.88);
  border-color:rgba(149,133,197,.15);
  box-shadow:0 11px 22px rgba(70,60,90,.055);
}
.timer-reset{
  justify-self:end;
  align-self:center;
  min-width:0;
  height:24px!important;
  padding:0 2px;
  border:0;
  background:transparent;
  color:#9d95a6;
  font-size:10.5px;
  font-weight:650;
  opacity:.42;
  box-shadow:none;
}
.timer-reset:hover{
  opacity:.78;
  background:transparent;
  border-color:transparent;
  color:#83788f;
}
.progress-shell{
  height:5px;
  margin-top:4px;
  background:rgba(78,66,96,.040);
  box-shadow:inset 0 1px 2px rgba(63,53,79,.035);
  opacity:.74;
}
.progress-shell::after{
  opacity:.45;
}
.progress-bar{
  background:linear-gradient(90deg,rgba(149,133,197,.38),rgba(149,133,197,.12));
}
.progress-bar::after{
  right:-10px!important;
  width:22px!important;
  height:18px!important;
  opacity:.54;
  filter:drop-shadow(0 3px 6px rgba(92,80,118,.10))!important;
}
.timer-panel.running .progress-bar::after,
.timer-panel[data-crown-state="active"] .progress-bar::after{
  opacity:.80;
}
.timer-panel.has-bound:not(.running) .progress-bar::after{
  opacity:.46;
}
.timer-panel.is-empty .progress-bar::after{
  opacity:.28!important;
}
.timer-panel.ended .progress-bar::after,
.timer-panel[data-crown-state="done"] .progress-bar::after{
  opacity:.78!important;
}

@media (min-width:901px) and (max-width:1180px) and (orientation:landscape){
  .timer-panel{
    min-height:226px;
    row-gap:13px;
    padding:19px 21px 18px 22px;
  }
  .timer-paper-strip{
    min-height:37px;
    padding-top:6px;
    padding-bottom:6px;
  }
  .timer-display{
    margin:6px 0 10px;
    font-size:clamp(56px,6.2vw,72px);
  }
  .timer-controls{
    grid-template-columns:auto auto minmax(54px,70px) minmax(0,1fr) auto;
    grid-template-rows:40px 25px;
    gap:7px 6px;
  }
  .timer-main{
    min-width:114px;
    height:40px!important;
    padding:0 18px;
  }
  .mini-preset,
  .timer-controls input{
    height:24px!important;
  }
}

@media (orientation:portrait), (max-width:900px){
  .timer-panel{
    grid-template-rows:auto auto minmax(56px,1fr) auto 6px;
    row-gap:12px;
    min-height:212px;
  }
  .timer-display{
    margin:5px 0 8px;
  }
  .timer-controls{
    grid-template-columns:auto auto minmax(54px,70px) minmax(0,1fr) auto;
    grid-template-rows:38px 25px;
    gap:7px 6px;
  }
  .timer-main{
    min-width:110px;
    height:38px!important;
  }
}

@media (max-width:640px){
  .timer-panel{
    grid-template-rows:auto auto minmax(50px,1fr) auto 5px;
    row-gap:10px;
    padding:15px 15px 16px;
  }
  .timer-paper-strip{
    min-height:36px;
    padding:6px 9px 6px;
  }
  .timer-display{
    font-size:58px;
  }
  .timer-controls{
    grid-template-columns:auto auto minmax(48px,60px) minmax(0,1fr) auto;
    grid-template-rows:37px 24px;
    gap:6px 5px;
  }
  .mini-preset{
    width:34px;
    padding:0 5px;
  }
  .timer-controls input{
    max-width:60px;
    padding:0 5px;
  }
  .timer-main{
    min-width:102px;
    height:37px!important;
    padding:0 14px;
  }
  .timer-reset{
    font-size:10px;
  }
  .progress-bar::after{
    width:20px!important;
    height:17px!important;
    right:-9px!important;
  }
}

@media (max-width:420px){
  .timer-display{font-size:52px}
  .timer-controls{
    grid-template-columns:auto auto minmax(44px,54px) minmax(0,1fr) auto;
  }
  .timer-main{
    min-width:92px;
    padding:0 12px;
    font-size:13px;
  }
}

/* v11.6.32: 右下盯纸钟从“摊开”收回三层状态牌；只动盯纸钟视觉结构。 */
.timer-panel{
  grid-template-columns:minmax(0,1fr) minmax(204px,220px);
  grid-template-rows:auto auto minmax(70px,auto) 8px;
  grid-template-areas:
    "head head"
    "paper paper"
    "time controls"
    "progress progress";
  align-content:center;
  column-gap:12px;
  row-gap:11px;
  min-height:224px;
  padding:19px 23px 20px 24px;
}
.timer-panel::before{
  inset:13px 15px 13px;
  opacity:.70;
}
.timer-head{
  min-height:24px;
  padding:0 2px 0 1px;
}
.timer-head span{
  font-size:12px;
  opacity:.80;
}
.timer-head .text-action{
  min-height:24px;
  padding:0 9px;
  transform:translateY(2px);
}
.timer-paper-strip{
  justify-self:start;
  width:clamp(248px,80%,430px);
  max-width:calc(100% - 70px);
  min-height:37px;
  margin-top:1px;
  margin-bottom:2px;
  padding:6px 10px 7px;
  transform:rotate(-.24deg) translateY(1px);
}
.timer-paper-strip.is-empty{
  transform:rotate(.18deg) translateY(1px);
}
.timer-display{
  justify-self:end;
  align-self:center;
  margin:1px 4px 0 0;
  padding-left:0;
  font-size:clamp(56px,5.15vw,76px);
  line-height:.86;
}
.timer-controls{
  align-self:center;
  justify-self:end;
  width:min(100%,220px);
  display:grid;
  grid-template-columns:28px 34px 34px minmax(54px,62px) 44px;
  grid-template-rows:39px 24px;
  grid-template-areas:
    ". . main main main"
    "target p25 p45 custom reset";
  align-items:center;
  justify-content:end;
  gap:7px 5px;
  padding:0;
}
.timer-controls::before{
  align-self:center;
  justify-self:start;
  font-size:10.5px;
  width:28px;
  white-space:nowrap;
  opacity:.66;
}
.timer-main{
  justify-self:end;
  min-width:116px;
  height:39px!important;
  padding:0 18px;
}
.mini-preset,
.timer-controls input{
  height:24px!important;
  font-size:10.5px;
}
.mini-preset{
  width:34px;
  padding:0 5px;
}
.timer-controls input{
  width:62px;
  max-width:62px;
  padding:0 6px;
}
.timer-reset{
  justify-self:end;
  height:23px!important;
  width:44px;
  padding:0 0 0 3px;
  font-size:9.5px;
  line-height:1;
  white-space:nowrap;
  opacity:.40;
}
.progress-shell{
  align-self:start;
  justify-self:stretch;
  height:5px;
  margin:4px 13px 0 8px;
  opacity:.76;
}
.progress-shell::after{
  opacity:.48;
}
.progress-bar::after{
  right:-9px!important;
  top:1px!important;
  width:23px!important;
  height:19px!important;
  opacity:.58;
}
.timer-panel.running .progress-bar::after,
.timer-panel[data-crown-state="active"] .progress-bar::after{
  opacity:.84;
}
.timer-panel.has-bound:not(.running) .progress-bar::after{
  opacity:.54;
}
.timer-panel.is-empty .progress-bar::after{
  opacity:.24!important;
}
.timer-panel.ended .progress-bar::after,
.timer-panel[data-crown-state="done"] .progress-bar::after{
  opacity:.82!important;
}

@media (min-width:901px) and (max-width:1180px) and (orientation:landscape){
  .timer-panel{
    grid-template-columns:minmax(0,1fr) minmax(198px,214px);
    min-height:222px;
    column-gap:11px;
    row-gap:10px;
    padding:19px 21px 19px 22px;
  }
  .timer-paper-strip{
    width:80%;
    max-width:calc(100% - 66px);
  }
  .timer-display{
    font-size:clamp(56px,6.05vw,72px);
  }
  .timer-controls{
    width:min(100%,214px);
    grid-template-columns:27px 33px 33px minmax(52px,60px) 43px;
    grid-template-rows:38px 23px;
    gap:6px 5px;
  }
  .timer-main{
    min-width:112px;
    height:38px!important;
    padding:0 17px;
  }
  .mini-preset,
  .timer-controls input{
    height:23px!important;
  }
  .timer-controls input{
    width:60px;
    max-width:60px;
  }
}

@media (orientation:portrait), (max-width:900px){
  .timer-panel{
    grid-template-columns:minmax(0,1fr) minmax(188px,208px);
    grid-template-rows:auto auto minmax(64px,auto) 7px;
    min-height:212px;
    column-gap:12px;
    row-gap:10px;
  }
  .timer-paper-strip{
    width:82%;
    max-width:calc(100% - 58px);
  }
  .timer-display{
    margin-top:0;
    font-size:clamp(54px,9vw,68px);
  }
  .timer-controls{
    width:min(100%,208px);
    grid-template-columns:27px 32px 32px minmax(50px,58px) 42px;
    grid-template-rows:37px 23px;
    gap:6px 4px;
  }
  .timer-main{
    min-width:106px;
    height:37px!important;
    padding:0 15px;
  }
  .mini-preset{
    width:32px;
  }
  .timer-controls input{
    width:58px;
    max-width:58px;
  }
}

@media (max-width:640px){
  .timer-panel{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto auto 6px;
    grid-template-areas:"head" "paper" "time" "controls" "progress";
    min-height:214px;
    row-gap:9px;
    padding:15px 15px 16px;
  }
  .timer-paper-strip{
    width:82%;
    max-width:calc(100% - 48px);
    min-height:36px;
  }
  .timer-display{
    justify-self:start;
    font-size:58px;
    padding-left:3px;
  }
  .timer-controls{
    justify-self:stretch;
    width:100%;
    grid-template-columns:minmax(0,1fr) auto 32px 32px minmax(50px,58px) auto;
    grid-template-rows:37px 23px;
    grid-template-areas:
      ". . . main main main"
      ". target p25 p45 custom reset";
    gap:6px 4px;
  }
  .timer-main{
    min-width:104px;
    height:37px!important;
    padding:0 14px;
  }
  .timer-reset{
    font-size:10px;
  }
  .progress-shell{
    margin:3px 12px 0 7px;
  }
  .progress-bar::after{
    width:20px!important;
    height:17px!important;
    right:-8px!important;
  }
}

@media (max-width:420px){
  .timer-display{font-size:52px}
  .timer-paper-strip{
    width:86%;
    max-width:calc(100% - 36px);
  }
  .timer-controls{
    grid-template-columns:minmax(0,1fr) auto 30px 30px minmax(46px,54px) auto;
  }
  .mini-preset{
    width:30px;
    padding:0 4px;
  }
  .timer-controls input{
    width:54px;
    max-width:54px;
    padding:0 4px;
  }
  .timer-main{
    min-width:94px;
    padding:0 12px;
    font-size:13px;
  }
}


/* v11.6.33: 只收口右下盯纸钟三层状态牌；不改功能逻辑。 */
.timer-panel{
  grid-template-columns:minmax(0,1fr) minmax(190px,208px);
  grid-template-rows:auto auto minmax(66px,auto) 12px;
  column-gap:8px;
  row-gap:9px;
  min-height:224px;
  padding:20px 23px 22px 24px;
}
.timer-head{
  padding:0 3px 0 1px;
  min-height:24px;
}
.timer-head .text-action{
  transform:translateY(2px);
  padding:0 8px;
  opacity:.66;
}
.timer-paper-strip{
  width:clamp(226px,74%,392px);
  max-width:calc(100% - 104px);
  min-height:36px;
  margin-top:3px;
  margin-bottom:1px;
  padding:6px 10px 7px;
  transform:rotate(-.20deg) translateY(6px);
}
.timer-paper-strip.is-empty{
  transform:rotate(.14deg) translateY(6px);
}
.strip-pin{
  opacity:.58;
}
.timer-paper-strip strong{
  color:#4e465a;
}
.timer-paper-strip small{
  opacity:.66;
}
.timer-display{
  justify-self:end;
  align-self:center;
  margin:0 0 0 0;
  font-size:clamp(56px,5.15vw,76px);
  line-height:.86;
  transform:translateY(-1px);
}
.timer-controls{
  justify-self:start;
  align-self:center;
  width:min(100%,208px);
  grid-template-columns:29px 31px 31px minmax(50px,54px) 43px;
  grid-template-rows:37px 22px;
  grid-template-areas:
    "main main main . ."
    "target p25 p45 custom reset";
  gap:6px 5px;
}
.timer-controls::before{
  width:29px;
  font-size:10px;
  opacity:.58;
  letter-spacing:.02em;
}
.timer-main{
  justify-self:start;
  min-width:102px;
  height:37px!important;
  padding:0 14px;
  font-size:13.5px;
  box-shadow:0 8px 17px rgba(70,60,90,.035);
}
.mini-preset,
.timer-controls input{
  height:22px!important;
  border-radius:999px;
  font-size:10px;
  font-weight:720;
  color:#7c7389;
  background:rgba(255,255,255,.34);
  border-color:rgba(92,80,118,.07);
}
.mini-preset{
  width:31px;
  padding:0 4px;
}
.mini-preset.active{
  background:rgba(149,133,197,.13);
  color:#75669a;
  border-color:rgba(149,133,197,.11);
  box-shadow:none;
}
.timer-controls input{
  width:54px;
  max-width:54px;
  padding:0 5px;
}
.timer-controls input::placeholder{
  color:#a9a1b3;
}
.timer-reset{
  justify-self:end;
  width:43px;
  height:22px!important;
  padding:0 1px 0 2px;
  font-size:9px;
  font-weight:650;
  opacity:.34;
  background:transparent;
  border-color:transparent;
}
.timer-reset:hover{
  opacity:.64;
  background:rgba(255,255,255,.34);
}
.progress-shell{
  height:5px;
  margin:0 17px 0 12px;
  opacity:.86;
  transform:translateY(-3px);
}
.progress-shell::after{
  opacity:.56;
}
.progress-bar::after{
  --crown-rest-y:-72%;
  top:-1px!important;
  right:-10px!important;
  width:24px!important;
  height:20px!important;
  opacity:.72;
}
.timer-panel[data-crown-state="active"] .progress-bar::after,
.timer-panel.running .progress-bar::after{
  --crown-rest-y:-73%;
  opacity:.92;
}
.timer-panel.has-bound:not(.running) .progress-bar::after{
  opacity:.68;
}
.timer-panel.is-empty .progress-bar::after{
  opacity:.28!important;
}
.timer-panel.ended .progress-bar::after,
.timer-panel[data-crown-state="done"] .progress-bar::after{
  --crown-rest-y:-74%;
  opacity:.92!important;
}

@media (min-width:901px) and (max-width:1180px) and (orientation:landscape){
  .timer-panel{
    grid-template-columns:minmax(0,1fr) minmax(186px,204px);
    column-gap:8px;
    row-gap:8px;
    padding:20px 22px 21px 23px;
  }
  .timer-paper-strip{
    width:74%;
    max-width:calc(100% - 96px);
    transform:rotate(-.18deg) translateY(6px);
  }
  .timer-paper-strip.is-empty{
    transform:rotate(.12deg) translateY(6px);
  }
  .timer-controls{
    width:min(100%,204px);
    grid-template-columns:28px 30px 30px minmax(50px,54px) 42px;
    grid-template-rows:36px 22px;
    gap:6px 5px;
  }
  .timer-main{
    min-width:100px;
    height:36px!important;
    padding:0 13px;
  }
  .timer-display{
    font-size:clamp(56px,5.95vw,72px);
  }
  .progress-shell{
    margin-right:16px;
    transform:translateY(-3px);
  }
}

@media (orientation:portrait), (max-width:900px){
  .timer-panel{
    grid-template-columns:minmax(0,1fr) minmax(176px,198px);
    row-gap:8px;
  }
  .timer-paper-strip{
    width:76%;
    max-width:calc(100% - 76px);
    transform:rotate(-.18deg) translateY(5px);
  }
  .timer-paper-strip.is-empty{
    transform:rotate(.12deg) translateY(5px);
  }
  .timer-controls{
    width:min(100%,198px);
    grid-template-columns:28px 30px 30px minmax(48px,52px) 40px;
    grid-template-rows:36px 22px;
    gap:5px 4px;
  }
  .timer-main{
    min-width:98px;
    height:36px!important;
    padding:0 12px;
  }
  .mini-preset{width:30px;}
  .timer-controls input{width:52px;max-width:52px;}
}

@media (max-width:640px){
  .timer-panel{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto auto 8px;
    row-gap:8px;
  }
  .timer-paper-strip{
    width:76%;
    max-width:calc(100% - 54px);
    transform:rotate(-.18deg) translateY(4px);
  }
  .timer-paper-strip.is-empty{
    transform:rotate(.12deg) translateY(4px);
  }
  .timer-display{
    justify-self:start;
    transform:translateY(0);
  }
  .timer-controls{
    justify-self:start;
    width:min(100%,204px);
    grid-template-columns:28px 30px 30px minmax(48px,52px) 40px;
    grid-template-areas:
      "main main main . ."
      "target p25 p45 custom reset";
  }
  .progress-shell{
    margin:0 15px 0 9px;
    transform:translateY(-2px);
  }
}

@media (max-width:420px){
  .timer-paper-strip{
    width:80%;
    max-width:calc(100% - 40px);
  }
  .timer-controls{
    width:min(100%,194px);
    grid-template-columns:27px 29px 29px minmax(44px,50px) 38px;
  }
  .timer-main{
    min-width:94px;
    font-size:13px;
  }
  .timer-controls input{width:50px;max-width:50px;}
  .timer-reset{width:38px;font-size:8.8px;}
}

/* v11.6.34: 只修右下时间轴下移与右上批示气泡靠近人物；不改 JS、布局结构和动画逻辑。 */
.timer-panel{
  grid-template-rows:auto auto minmax(68px,auto) 22px;
  row-gap:10px;
  padding-bottom:24px;
}
.timer-controls{
  align-self:center;
}
.timer-controls::before,
.mini-preset,
.timer-controls input,
.timer-reset{
  transform:translateY(16px);
}
.progress-shell{
  justify-self:center;
  width:90%;
  margin:0 auto;
  transform:translateY(15px);
  opacity:.88;
  background:rgba(78,66,96,.050);
}
.progress-shell::after{
  opacity:.58;
}
.progress-bar{
  background:linear-gradient(90deg,rgba(149,133,197,.42),rgba(149,133,197,.14));
}
.progress-bar::after{
  --crown-rest-y:-58%;
  top:0!important;
  right:-10px!important;
  width:24px!important;
  height:20px!important;
  opacity:.76;
}
.timer-panel[data-crown-state="active"] .progress-bar::after,
.timer-panel.running .progress-bar::after{
  --crown-rest-y:-59%;
  opacity:.92;
}
.timer-panel.has-bound:not(.running) .progress-bar::after{
  --crown-rest-y:-57%;
  opacity:.68;
}
.timer-panel.is-empty .progress-bar::after{
  --crown-rest-y:-56%;
  opacity:.26!important;
}
.timer-panel.ended .progress-bar::after,
.timer-panel[data-crown-state="done"] .progress-bar::after{
  --crown-rest-y:-60%;
  opacity:.92!important;
}

@media (min-width:901px) and (max-width:1180px) and (orientation:landscape){
  .timer-panel{
    grid-template-rows:auto auto minmax(68px,auto) 22px;
    row-gap:9px;
    padding-bottom:24px;
  }
  .timer-controls::before,
  .mini-preset,
  .timer-controls input,
  .timer-reset{
    transform:translateY(15px);
  }
  .progress-shell{
    width:90%;
    margin:0 auto;
    transform:translateY(14px);
  }
}

@media (orientation:portrait), (max-width:900px){
  .timer-panel{
    grid-template-rows:auto auto minmax(66px,auto) 20px;
    padding-bottom:22px;
  }
  .timer-controls::before,
  .mini-preset,
  .timer-controls input,
  .timer-reset{
    transform:translateY(13px);
  }
  .progress-shell{
    width:90%;
    margin:0 auto;
    transform:translateY(12px);
  }
}

@media (max-width:640px){
  .timer-panel{
    grid-template-rows:auto auto auto auto 16px;
    padding-bottom:18px;
  }
  .timer-controls::before,
  .mini-preset,
  .timer-controls input,
  .timer-reset{
    transform:translateY(8px);
  }
  .progress-shell{
    width:90%;
    margin:0 auto;
    transform:translateY(8px);
  }
}

@media (min-width:641px){
  #gCard .g-text{
    left:62px;
    top:102px;
    width:min(318px,calc(100% - var(--mascot-w) + 2px));
    max-width:318px;
  }
  #gCard .g-text .bubble-word{
    top:-13px;
    right:8px;
  }
  #gCard .speech-card::after{
    left:auto!important;
    right:48px!important;
    bottom:-10px;
    width:15px;
    height:15px;
    opacity:.72;
    transform:rotate(-13deg) skewX(18deg);
  }
}

@media (min-width:901px) and (max-width:1180px) and (orientation:landscape){
  #gCard .g-text{
    left:60px;
    top:100px;
    width:min(304px,calc(100% - var(--mascot-w) + 0px));
    max-width:304px;
  }
  #gCard .speech-card::after{
    right:46px!important;
    bottom:-9px;
    width:14px;
    height:14px;
  }
}

@media (orientation:portrait), (max-width:900px){
  #gCard .g-text{
    left:52px;
    top:94px;
    width:min(292px,calc(100% - var(--mascot-w) - 4px));
    max-width:292px;
  }
  #gCard .speech-card::after{
    right:42px!important;
    bottom:-8px;
  }
}

@media (max-width:560px){
  #gCard .g-text{
    position:relative;
    left:auto;
    top:auto;
    width:auto;
    max-width:none;
  }
  #gCard .speech-card::after{
    left:30px!important;
    right:auto!important;
    transform:rotate(31deg) skewX(-8deg);
  }
}

/* v11.6.35: 只加强右下盯纸钟底部时间轴视觉重量；不改计时逻辑、布局结构和其他区域。 */
.timer-panel .progress-shell{
  height:6px;
  width:90%;
  margin:0 auto;
  transform:translateY(15px);
  border-radius:999px;
  opacity:.96;
  background:rgba(88,76,108,.082);
  box-shadow:inset 0 1px 2px rgba(64,53,82,.055), 0 1px 0 rgba(255,255,255,.38);
}
.timer-panel .progress-shell::after{
  opacity:.46;
}
.timer-panel .progress-bar{
  height:5px;
  top:.5px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(151,135,198,.56),rgba(151,135,198,.25));
}
.timer-panel .progress-bar::after{
  --crown-rest-y:-57%;
  top:-2px!important;
  right:-11px!important;
  width:25px!important;
  height:22px!important;
  opacity:.84;
  filter:drop-shadow(0 4px 7px rgba(92,80,118,.14))!important;
}
.timer-panel[data-crown-state="active"] .progress-bar::after,
.timer-panel.running .progress-bar::after{
  --crown-rest-y:-58%;
  opacity:.96;
}
.timer-panel.has-bound:not(.running) .progress-bar::after{
  --crown-rest-y:-56%;
  opacity:.78;
}
.timer-panel.is-empty .progress-bar::after{
  --crown-rest-y:-55%;
  opacity:.38!important;
}
.timer-panel.ended .progress-bar::after,
.timer-panel[data-crown-state="done"] .progress-bar::after{
  --crown-rest-y:-59%;
  opacity:.96!important;
}

@media (min-width:901px) and (max-width:1180px) and (orientation:landscape){
  .timer-panel .progress-shell{
    height:6px;
    width:90%;
    transform:translateY(14px);
  }
  .timer-panel .progress-bar{
    height:5px;
    top:.5px;
  }
  .timer-panel .progress-bar::after{
    top:-2px!important;
    width:24px!important;
    height:21px!important;
    right:-10px!important;
  }
}

@media (orientation:portrait), (max-width:900px){
  .timer-panel .progress-shell{
    height:6px;
    width:90%;
    transform:translateY(12px);
  }
  .timer-panel .progress-bar{
    height:5px;
    top:.5px;
  }
  .timer-panel .progress-bar::after{
    top:-2px!important;
    width:24px!important;
    height:21px!important;
    right:-10px!important;
  }
}

@media (max-width:640px){
  .timer-panel .progress-shell{
    height:5.5px;
    width:90%;
    transform:translateY(8px);
  }
  .timer-panel .progress-bar{
    height:4.5px;
    top:.5px;
  }
  .timer-panel .progress-bar::after{
    top:-2px!important;
    width:22px!important;
    height:19px!important;
    right:-9px!important;
  }
}


/* v11.6.36: 只修右下“当前处理纸条”strip；不改计时、进度条和其他区域。 */
.timer-paper-strip{
  justify-self:start;
  width:clamp(212px,58%,304px);
  max-width:62%;
  min-height:48px;
  grid-template-columns:16px minmax(0,1fr);
  column-gap:7px;
  padding:8px 13px 9px 12px;
  border-radius:13px 16px 12px 15px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.76),rgba(248,247,252,.58)),
    rgba(250,249,253,.48);
  border:1px solid rgba(102,90,124,.082);
  box-shadow:0 9px 18px rgba(70,58,90,.046), inset 0 1px 0 rgba(255,255,255,.66);
  transform:rotate(-.28deg) translateY(5px);
}
.timer-paper-strip.is-empty{
  width:clamp(200px,56%,292px);
  max-width:62%;
  min-height:48px;
  background:linear-gradient(180deg,rgba(255,255,255,.64),rgba(247,246,251,.42));
  border-color:rgba(102,90,124,.058);
  border-style:dashed;
  transform:rotate(.16deg) translateY(5px);
}
.timer-paper-strip.is-running{
  background:
    linear-gradient(180deg,rgba(255,255,255,.82),rgba(248,247,253,.64)),
    rgba(250,249,253,.52);
  border-color:rgba(149,133,197,.13);
  box-shadow:0 10px 20px rgba(97,83,128,.060), inset 0 1px 0 rgba(255,255,255,.70);
}
.timer-paper-strip.is-ended{
  background:
    linear-gradient(180deg,rgba(255,255,255,.82),rgba(248,247,253,.66)),
    rgba(250,249,253,.54);
  border-color:rgba(149,133,197,.12);
}
.strip-pin{
  width:14px;
  height:14px;
  align-self:center;
  font-size:10px;
  color:#8d849a;
  background:transparent;
  border-color:transparent;
  box-shadow:none;
  opacity:.34;
}
.timer-paper-strip strong{
  font-size:14.5px;
  line-height:1.22;
  color:#4d4659;
  opacity:.96;
}
.timer-paper-strip small{
  margin-top:2px;
  font-size:11px;
  line-height:1.18;
  color:#8e849b;
  opacity:.78;
}

@media (min-width:901px) and (max-width:1180px) and (orientation:landscape){
  .timer-paper-strip{
    width:clamp(206px,58%,292px);
    max-width:62%;
    min-height:47px;
    padding:8px 12px 9px 12px;
    transform:rotate(-.24deg) translateY(5px);
  }
  .timer-paper-strip.is-empty{
    width:clamp(196px,56%,282px);
    max-width:62%;
    transform:rotate(.14deg) translateY(5px);
  }
}

@media (orientation:portrait), (max-width:900px){
  .timer-paper-strip{
    width:clamp(202px,64%,300px);
    max-width:72%;
    min-height:47px;
  }
  .timer-paper-strip.is-empty{
    width:clamp(190px,62%,286px);
    max-width:72%;
  }
}

@media (max-width:640px){
  .timer-paper-strip{
    width:76%;
    max-width:calc(100% - 56px);
    min-height:46px;
    grid-template-columns:14px minmax(0,1fr);
    padding:8px 11px 8px 10px;
    transform:rotate(-.16deg) translateY(3px);
  }
  .timer-paper-strip.is-empty{
    width:72%;
    max-width:calc(100% - 56px);
    transform:rotate(.10deg) translateY(3px);
  }
  .strip-pin{
    width:13px;
    height:13px;
    font-size:9px;
  }
  .timer-paper-strip strong{font-size:14px;}
  .timer-paper-strip small{font-size:10.5px;}
}

/* v11.6.37: 只收右下“盯纸钟”整体构图；不改计时逻辑、其他区域和动画。 */
.timer-panel{
  grid-template-columns:minmax(0,1fr) minmax(146px,176px);
  grid-template-rows:auto 50px minmax(58px,auto) 24px;
  grid-template-areas:
    "head head"
    "paper paper"
    "time controls"
    "progress progress";
  align-content:center;
  column-gap:13px;
  row-gap:10px;
  min-height:224px;
  padding:20px 24px 26px 25px;
}
.timer-head{
  grid-area:head;
  min-height:24px;
}
.timer-paper-strip{
  grid-area:paper;
  justify-self:start;
  width:clamp(248px,52%,356px);
  max-width:56%;
  min-height:47px;
  margin-left:clamp(24px,5.6%,48px);
  margin-top:0;
  margin-bottom:0;
  padding:8px 13px 9px 12px;
  transform:rotate(-.22deg) translateY(2px);
}
.timer-paper-strip.is-empty{
  width:clamp(232px,50%,336px);
  max-width:54%;
  margin-left:clamp(24px,5.6%,48px);
  transform:rotate(.12deg) translateY(2px);
}
.timer-display{
  grid-area:time;
  justify-self:end;
  align-self:center;
  margin:0;
  font-size:clamp(50px,4.7vw,66px);
  line-height:.86;
  letter-spacing:-.072em;
  transform:translateY(-1px);
}
.timer-controls{
  grid-area:controls;
  justify-self:start;
  align-self:center;
  width:176px;
  grid-template-columns:27px 28px 28px 48px 37px;
  grid-template-rows:36px 21px;
  grid-template-areas:
    "main main main main main"
    "target p25 p45 custom reset";
  gap:5px 4px;
}
.timer-controls::before,
.mini-preset,
.timer-controls input,
.timer-reset{
  transform:none;
}
.timer-main{
  justify-self:start;
  width:auto;
  min-width:104px;
  height:36px!important;
  padding:0 15px;
  font-size:13.2px;
  box-shadow:0 8px 17px rgba(70,60,90,.036);
}
.timer-controls::before{
  width:auto;
  font-size:9.8px;
  opacity:.56;
  letter-spacing:.01em;
}
.mini-preset,
.timer-controls input{
  height:21px!important;
  font-size:9.6px;
  border-radius:999px;
  background:rgba(255,255,255,.28);
  border-color:rgba(91,80,108,.055);
  opacity:.72;
}
.mini-preset{
  width:28px;
  padding:0 3px;
}
.mini-preset.active{
  opacity:.88;
  background:rgba(149,133,197,.105);
  border-color:rgba(149,133,197,.12);
}
.timer-controls input{
  width:48px;
  max-width:48px;
  padding:0 4px;
}
.timer-reset{
  justify-self:start;
  width:37px;
  height:21px!important;
  padding:0;
  font-size:8.8px;
  opacity:.32;
}
.timer-reset:hover{
  opacity:.62;
}
.timer-panel .progress-shell{
  grid-area:progress;
  justify-self:center;
  align-self:start;
  width:82%;
  max-width:540px;
  min-width:0;
  height:6px;
  margin:0 auto;
  transform:translateY(8px);
}
.timer-panel .progress-bar{
  height:5px;
  top:.5px;
}
.timer-panel .progress-bar::after{
  top:-2px!important;
  right:-10px!important;
  width:23px!important;
  height:20px!important;
}

@media (min-width:901px) and (max-width:1180px) and (orientation:landscape){
  .timer-panel{
    grid-template-columns:minmax(0,1fr) minmax(142px,170px);
    grid-template-rows:auto 49px minmax(56px,auto) 23px;
    column-gap:12px;
    row-gap:9px;
    padding:20px 23px 25px 24px;
  }
  .timer-paper-strip{
    width:clamp(232px,52%,326px);
    max-width:56%;
    min-height:46px;
    margin-left:clamp(20px,5%,42px);
    transform:rotate(-.20deg) translateY(2px);
  }
  .timer-paper-strip.is-empty{
    width:clamp(220px,50%,310px);
    max-width:54%;
    margin-left:clamp(20px,5%,42px);
    transform:rotate(.12deg) translateY(2px);
  }
  .timer-display{
    font-size:clamp(50px,5.5vw,64px);
  }
  .timer-controls{
    width:170px;
    grid-template-columns:26px 27px 27px 46px 36px;
    grid-template-rows:35px 21px;
    gap:5px 4px;
  }
  .timer-main{
    min-width:100px;
    height:35px!important;
    padding:0 14px;
  }
  .mini-preset{width:27px;}
  .timer-controls input{width:46px;max-width:46px;}
  .timer-reset{width:36px;}
  .timer-panel .progress-shell{
    width:82%;
    transform:translateY(8px);
  }
}

@media (orientation:portrait), (max-width:900px){
  .timer-panel{
    grid-template-columns:minmax(0,1fr) minmax(136px,164px);
    grid-template-rows:auto 48px minmax(55px,auto) 22px;
    column-gap:11px;
    row-gap:9px;
    padding:18px 20px 24px;
  }
  .timer-paper-strip{
    width:clamp(220px,58%,316px);
    max-width:64%;
    margin-left:clamp(14px,4%,32px);
    min-height:46px;
  }
  .timer-paper-strip.is-empty{
    width:clamp(208px,56%,300px);
    max-width:62%;
    margin-left:clamp(14px,4%,32px);
  }
  .timer-display{
    font-size:clamp(48px,7.8vw,62px);
  }
  .timer-controls{
    width:164px;
    grid-template-columns:25px 27px 27px 44px 34px;
    grid-template-rows:34px 20px;
    gap:5px 3px;
  }
  .timer-main{
    min-width:98px;
    height:34px!important;
    padding:0 13px;
  }
  .mini-preset,
  .timer-controls input,
  .timer-reset{
    height:20px!important;
  }
  .mini-preset{width:27px;}
  .timer-controls input{width:44px;max-width:44px;}
  .timer-reset{width:34px;font-size:8.5px;}
  .timer-panel .progress-shell{
    width:84%;
    transform:translateY(7px);
  }
}

@media (max-width:640px){
  .timer-panel{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto auto 16px;
    grid-template-areas:"head" "paper" "time" "controls" "progress";
    row-gap:9px;
    align-content:stretch;
    padding:15px 15px 18px;
  }
  .timer-paper-strip,
  .timer-paper-strip.is-empty{
    width:76%;
    max-width:calc(100% - 54px);
    margin-left:0;
    transform:rotate(-.16deg) translateY(3px);
  }
  .timer-paper-strip.is-empty{transform:rotate(.10deg) translateY(3px);}
  .timer-display{
    justify-self:start;
    font-size:56px;
    transform:none;
  }
  .timer-controls{
    justify-self:start;
    width:190px;
    grid-template-columns:26px 28px 28px 46px 34px;
    grid-template-rows:35px 20px;
  }
  .timer-main{
    min-width:100px;
    height:35px!important;
  }
  .timer-panel .progress-shell{
    width:84%;
    transform:translateY(6px);
  }
  .timer-panel .progress-bar::after{
    width:22px!important;
    height:19px!important;
  }
}

/* v11.6.38: 只微调右下当前处理纸条外形，让它有极轻微手工小白纸感；不改布局和功能。 */
.timer-paper-strip{
  position:relative;
  isolation:isolate;
  overflow:visible;
  border:0!important;
  background:transparent!important;
  box-shadow:0 8px 17px rgba(70,58,90,.038);
  border-radius:16px 14px 15px 13px / 13px 16px 14px 17px;
  transform:rotate(-.32deg) translateY(2px);
}
.timer-paper-strip::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  border-radius:16px 14px 15px 13px / 13px 16px 14px 17px;
  border:1px solid rgba(102,90,124,.078);
  background:
    linear-gradient(180deg,rgba(255,255,255,.82),rgba(248,247,252,.60)),
    rgba(250,249,253,.46);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
  clip-path:polygon(
    1.0% 7.0%, 15.5% 3.8%, 34% 4.7%, 54% 2.8%, 74% 4.2%, 98.7% 3.2%,
    99.0% 30%, 98.3% 57%, 99.1% 91%, 83% 96.3%, 61% 95.1%, 39% 97.4%,
    17% 95.5%, 2.0% 97.6%, .8% 67%, 1.6% 36%
  );
}
.timer-paper-strip::after{
  content:"";
  position:absolute;
  left:8px;
  right:11px;
  top:6px;
  height:1px;
  z-index:0;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(122,111,145,.16),transparent);
  opacity:.28;
  transform:rotate(.24deg);
}
.timer-paper-strip > *,
.timer-paper-strip .strip-pin,
.timer-paper-strip strong,
.timer-paper-strip small{
  position:relative;
  z-index:1;
}
.timer-paper-strip.is-empty{
  transform:rotate(.18deg) translateY(2px);
  box-shadow:0 7px 15px rgba(70,58,90,.030);
}
.timer-paper-strip.is-empty::before{
  background:linear-gradient(180deg,rgba(255,255,255,.66),rgba(247,246,251,.42));
  border-color:rgba(102,90,124,.056);
  border-style:dashed;
  clip-path:polygon(
    1.1% 8.0%, 18% 4.2%, 36% 5.0%, 56% 3.2%, 76% 4.5%, 98.5% 3.6%,
    98.8% 31%, 98.0% 58%, 99.0% 90%, 82% 96.0%, 60% 94.8%, 38% 97.1%,
    16% 95.2%, 2.3% 97.0%, .9% 66%, 1.8% 37%
  );
}
.timer-paper-strip.is-running{
  box-shadow:0 9px 19px rgba(97,83,128,.050);
}
.timer-paper-strip.is-running::before{
  background:
    linear-gradient(180deg,rgba(255,255,255,.86),rgba(248,247,253,.66)),
    rgba(250,249,253,.50);
  border-color:rgba(149,133,197,.12);
}
.timer-paper-strip.is-ended::before{
  background:
    linear-gradient(180deg,rgba(255,255,255,.84),rgba(248,247,253,.64)),
    rgba(250,249,253,.50);
  border-color:rgba(149,133,197,.105);
}
.timer-paper-strip strong{
  text-shadow:0 1px 0 rgba(255,255,255,.42);
}
.timer-paper-strip small{
  opacity:.80;
}
.strip-pin{
  opacity:.28;
}

@media (min-width:901px) and (max-width:1180px) and (orientation:landscape){
  .timer-paper-strip{
    transform:rotate(-.28deg) translateY(2px);
  }
  .timer-paper-strip.is-empty{
    transform:rotate(.16deg) translateY(2px);
  }
}

@media (orientation:portrait), (max-width:900px){
  .timer-paper-strip{
    transform:rotate(-.24deg) translateY(2px);
  }
  .timer-paper-strip.is-empty{
    transform:rotate(.14deg) translateY(2px);
  }
}

@media (max-width:640px){
  .timer-paper-strip,
  .timer-paper-strip.is-empty{
    transform:rotate(-.16deg) translateY(3px);
  }
  .timer-paper-strip.is-empty{transform:rotate(.10deg) translateY(3px)}
  .timer-paper-strip::before{
    clip-path:polygon(
      1.2% 7.5%, 16% 4.2%, 35% 4.8%, 55% 3.1%, 75% 4.4%, 98.6% 3.5%,
      98.9% 31%, 98.2% 58%, 99.0% 91%, 82% 96.2%, 61% 95.0%, 39% 97.2%,
      17% 95.4%, 2.2% 97.3%, .9% 66%, 1.7% 37%
    );
  }
}

/* v11.6.39: 只收动画与微交互；不动布局、字体、配色、四区结构与正计时逻辑。 */
.task-note.completing{
  pointer-events:none;
  z-index:6;
  animation:none!important;
}
.task-note.completing::before,
.task-note.completing::after{
  animation:none!important;
}
.task-note.completing-confirm{
  animation:noteCompleteConfirmV11639 260ms cubic-bezier(.22,.61,.36,1) both!important;
}
.task-note.completing-confirm::before{
  opacity:.72!important;
  transform:translateZ(0) scale(1)!important;
}
.task-note.completing-confirm::after{
  opacity:1!important;
}
.task-note.completing-confirm .task-check,
.task-note.completing-confirm .task-note-text,
.task-note.completing-confirm .task-meta,
.task-note.completing-confirm .task-actions,
.task-note.completing-confirm .task-duty-badge,
.task-note.completing-confirm .task-focus-time{
  animation:none!important;
  opacity:1!important;
  transform:none!important;
}
.task-note.completing-crumple{
  animation:noteCompleteCrumpleV11639 360ms cubic-bezier(.22,.61,.36,1) both!important;
}
.task-note.completing-crumple::before{
  animation:noteLinesCrumpleV11639 360ms cubic-bezier(.22,.61,.36,1) both!important;
}
.task-note.completing-crumple::after{
  animation:tapeFoldV11639 300ms ease both!important;
}
.task-note.completing-crumple .task-check,
.task-note.completing-crumple .task-note-text,
.task-note.completing-crumple .task-meta,
.task-note.completing-crumple .task-actions,
.task-note.completing-crumple .task-duty-badge,
.task-note.completing-crumple .task-focus-time{
  animation:noteTextVanishV11639 260ms ease both!important;
}
.task-note.completing-toss-prep{
  opacity:.44!important;
  transform:translateY(calc(var(--note-offset,0) - 4px)) rotate(calc(var(--note-rot,0deg) + 14deg)) scale(.24)!important;
  border-radius:50% 45% 54% 48%!important;
  box-shadow:0 5px 11px rgba(68,57,84,.032),inset 2px 2px 4px rgba(255,255,255,.26)!important;
}
.task-note.completing-toss{
  animation:noteCompleteSourceFadeV11640 240ms ease both!important;
  border-radius:50% 45% 54% 48%!important;
  box-shadow:0 4px 9px rgba(68,57,84,.026),inset 2px 2px 4px rgba(255,255,255,.22)!important;
}
.task-note.completing-return{
  opacity:0!important;
  transform:translateY(calc(var(--note-offset,0) - 5px)) rotate(calc(var(--note-rot,0deg) + 17deg)) scale(.17)!important;
  border-radius:50% 45% 54% 48%!important;
  box-shadow:none!important;
}
.task-note.completing-toss-prep::before,
.task-note.completing-toss-prep::after,
.task-note.completing-toss::before,
.task-note.completing-toss::after,
.task-note.completing-return::before,
.task-note.completing-return::after{
  opacity:0!important;
}
.task-note.completing-toss-prep .task-check,
.task-note.completing-toss-prep .task-note-text,
.task-note.completing-toss-prep .task-meta,
.task-note.completing-toss-prep .task-actions,
.task-note.completing-toss-prep .task-duty-badge,
.task-note.completing-toss-prep .task-focus-time,
.task-note.completing-toss .task-check,
.task-note.completing-toss .task-note-text,
.task-note.completing-toss .task-meta,
.task-note.completing-toss .task-actions,
.task-note.completing-toss .task-duty-badge,
.task-note.completing-toss .task-focus-time,
.task-note.completing-return .task-check,
.task-note.completing-return .task-note-text,
.task-note.completing-return .task-meta,
.task-note.completing-return .task-actions,
.task-note.completing-return .task-duty-badge,
.task-note.completing-return .task-focus-time{
  opacity:0!important;
  animation:none!important;
}

.paper-ball.completion-ball{
  z-index:84;
  transform-origin:52% 58%;
  filter:drop-shadow(0 6px 11px rgba(71,59,88,.07));
}

.timer-paper-strip.strip-completing{
  will-change:transform,opacity;
}
.timer-paper-strip.strip-completing-confirm{
  animation:stripCompleteConfirmV11639 260ms cubic-bezier(.22,.61,.36,1) both!important;
}
.timer-paper-strip.strip-completing-crumple{
  animation:stripCompleteCrumpleV11639 360ms cubic-bezier(.22,.61,.36,1) both!important;
}
.timer-paper-strip.strip-completing-toss-prep,
.timer-paper-strip.strip-completing-toss{
  animation:stripCompleteHoldV11639 220ms ease both!important;
}
.timer-paper-strip.strip-completing-return{
  animation:stripCompleteReturnV11639 280ms cubic-bezier(.22,.61,.36,1) both!important;
}

.flying-note.is-reading{
  animation:flyingNoteReadHoldV11639 340ms cubic-bezier(.22,.61,.36,1) both;
}

.mascot-slot[data-mascot-state="idle"] .mascot-main,
.mascot-slot[data-mascot-state="focus"] .mascot-main{
  --princess-breath-y:.9px;
  animation:princessDutyBreathV11639 4.8s ease-in-out infinite!important;
}
.mascot-slot.focus-soft[data-mascot-state="idle"] .mascot-main,
.mascot-slot.focus-soft[data-mascot-state="focus"] .mascot-main{
  --princess-breath-y:.62px;
  animation-duration:5.15s!important;
}
.mascot-slot.state-settle .mascot-main,
.mascot-slot.node-delivery .mascot-main{
  animation:princessNodeDeliveryV11639 760ms cubic-bezier(.22,.61,.36,1) both!important;
}
.mascot-slot.node-start .mascot-main{
  animation:princessNodeStartV11639 700ms cubic-bezier(.22,.61,.36,1) both!important;
}
.mascot-slot.node-resume .mascot-main{
  animation:princessNodeResumeV11639 640ms cubic-bezier(.22,.61,.36,1) both!important;
}
.mascot-slot.node-pause .mascot-main{
  animation:princessNodePauseV11639 620ms cubic-bezier(.22,.61,.36,1) both!important;
}
.mascot-slot.node-done .mascot-main,
.mascot-slot.node-completing-confirm .mascot-main{
  animation:princessCompletionConfirmV11639 380ms cubic-bezier(.22,.61,.36,1) both!important;
}
.mascot-slot.node-completing-toss-prep .mascot-main{
  animation:princessTossPrepV11639 250ms cubic-bezier(.22,.61,.36,1) both!important;
}
.mascot-slot.node-completing-toss .mascot-main{
  animation:princessTossMainV11639 520ms cubic-bezier(.22,.61,.36,1) both!important;
}
.mascot-slot.node-completing-return .mascot-main{
  animation:princessReturnDutyV11639 360ms cubic-bezier(.22,.61,.36,1) both!important;
}

.timer-panel[data-crown-state="idle"]:not(.crown-pin-feedback):not(.crown-start-feedback):not(.crown-done-feedback) .progress-bar::after,
.timer-panel[data-crown-state="active"]:not(.crown-pin-feedback):not(.crown-start-feedback):not(.crown-done-feedback) .progress-bar::after{
  animation:crownLowDutyWiggleV11639 11.6s ease-in-out infinite!important;
}
.timer-panel[data-crown-state="active"]:not(.crown-pin-feedback):not(.crown-start-feedback):not(.crown-done-feedback) .progress-bar::after{
  animation-duration:10.4s!important;
}

@keyframes noteCompleteConfirmV11639{
  0%{opacity:1;transform:translateY(var(--note-offset,0)) rotate(var(--note-rot,0deg)) scale(1)}
  54%{opacity:1;transform:translateY(calc(var(--note-offset,0) + 1px)) rotate(calc(var(--note-rot,0deg) - .35deg)) scale(.996)}
  100%{opacity:1;transform:translateY(var(--note-offset,0)) rotate(var(--note-rot,0deg)) scale(1)}
}
@keyframes noteCompleteCrumpleV11639{
  0%{opacity:1;border-radius:18px;box-shadow:0 10px 22px rgba(68,57,84,.045),inset 0 1px 0 rgba(255,255,255,.72);transform:translateY(var(--note-offset,0)) rotate(var(--note-rot,0deg)) scale(1)}
  32%{opacity:.98;border-radius:23px 18px 24px 19px;box-shadow:0 9px 19px rgba(68,57,84,.050),inset 1px 1px 0 rgba(255,255,255,.52);transform:translateY(calc(var(--note-offset,0) + 1px)) rotate(calc(var(--note-rot,0deg) + 2.2deg)) scale(.91)}
  68%{opacity:.68;border-radius:44% 38% 50% 42%;box-shadow:0 7px 15px rgba(68,57,84,.055),inset 2px 2px 4px rgba(255,255,255,.34),inset -3px -2px 5px rgba(96,82,120,.04);transform:translateY(calc(var(--note-offset,0) - 2px)) rotate(calc(var(--note-rot,0deg) - 8deg)) scale(.44)}
  100%{opacity:.48;border-radius:50% 45% 54% 48%;box-shadow:0 5px 11px rgba(68,57,84,.034),inset 2px 2px 4px rgba(255,255,255,.30),inset -3px -2px 5px rgba(96,82,120,.035);transform:translateY(calc(var(--note-offset,0) - 4px)) rotate(calc(var(--note-rot,0deg) + 14deg)) scale(.24)}
}
@keyframes noteLinesCrumpleV11639{
  0%{opacity:.72;transform:translateZ(0) scale(1)}
  48%{opacity:.34;transform:translateY(-1px) rotate(-5deg) scale(.68)}
  100%{opacity:.08;transform:translateY(4px) rotate(14deg) scale(.26)}
}
@keyframes noteTextVanishV11639{
  0%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(.90)}
}
@keyframes tapeFoldV11639{
  0%{opacity:1;transform:translateX(-50%) rotate(calc(var(--note-rot,0deg) * -0.55)) scale(1)}
  100%{opacity:0;transform:translateX(-50%) translateY(9px) rotate(15deg) scale(.38)}
}
@keyframes stripCompleteConfirmV11639{
  0%,100%{transform:rotate(-.35deg) translateY(0)}
  58%{transform:rotate(-.42deg) translateY(1px)}
}
@keyframes stripCompleteCrumpleV11639{
  0%{opacity:1;border-radius:16px 14px 15px 13px / 13px 16px 14px 17px;transform:rotate(-.35deg) translateY(0) scale(1)}
  46%{opacity:.78;border-radius:28px 22px 30px 24px / 24px 30px 23px 29px;transform:rotate(.18deg) translateY(1px) scale(.76)}
  100%{opacity:.48;border-radius:50% 45% 54% 48%;transform:rotate(.55deg) translateY(5px) scale(.30)}
}
@keyframes stripCompleteHoldV11639{
  0%,100%{opacity:.44;border-radius:50% 45% 54% 48%;transform:rotate(.55deg) translateY(5px) scale(.30)}
}
@keyframes stripCompleteReturnV11639{
  0%{opacity:.36;border-radius:50% 45% 54% 48%;transform:rotate(.55deg) translateY(5px) scale(.30)}
  100%{opacity:0;border-radius:50% 45% 54% 48%;transform:rotate(.75deg) translateY(6px) scale(.24)}
}

@keyframes noteCompleteSourceFadeV11640{
  0%{opacity:.42;transform:translateY(calc(var(--note-offset,0) - 4px)) rotate(calc(var(--note-rot,0deg) + 14deg)) scale(.24)}
  100%{opacity:0;transform:translateY(calc(var(--note-offset,0) - 5px)) rotate(calc(var(--note-rot,0deg) + 17deg)) scale(.17)}
}
.timer-paper-strip.strip-completing{
  transform-origin:50% 54%;
}
.timer-paper-strip.strip-completing-crumple > *,
.timer-paper-strip.strip-completing-toss-prep > *,
.timer-paper-strip.strip-completing-toss > *,
.timer-paper-strip.strip-completing-return > *{
  animation:stripContentFadeV11640 320ms ease both;
}
.timer-paper-strip.strip-completing-toss-prep > *,
.timer-paper-strip.strip-completing-toss > *{
  opacity:.12!important;
  transform:scale(.82)!important;
  animation:none!important;
}
.timer-paper-strip.strip-completing-return > *{
  opacity:0!important;
  transform:scale(.80)!important;
  animation:none!important;
}
@keyframes stripContentFadeV11640{
  0%{opacity:1;transform:scale(1)}
  100%{opacity:.16;transform:scale(.82)}
}

@keyframes flyingNoteReadHoldV11639{
  0%{filter:none;scale:1}
  46%{filter:drop-shadow(0 5px 8px rgba(91,80,108,.055));scale:1.006}
  100%{filter:none;scale:1}
}
@keyframes princessDutyBreathV11639{
  0%,100%{translate:0 0}
  50%{translate:0 var(--princess-breath-y,.9px)}
}
@keyframes princessNodeDeliveryV11639{
  0%{translate:0 0}
  28%{translate:0 .9px}
  56%{translate:0 -.35px}
  100%{translate:0 0}
}
@keyframes princessNodeStartV11639{
  0%{translate:0 0;scale:1}
  26%{translate:0 -1.15px;scale:1.002}
  62%{translate:0 .35px;scale:.999}
  100%{translate:0 0;scale:1}
}
@keyframes princessNodeResumeV11639{
  0%{translate:0 0;scale:1}
  30%{translate:0 -.75px;scale:1.001}
  68%{translate:0 .25px;scale:.9995}
  100%{translate:0 0;scale:1}
}
@keyframes princessNodePauseV11639{
  0%{translate:0 0;scale:1}
  38%{translate:0 1.05px;scale:.998}
  76%{translate:0 .45px;scale:.999}
  100%{translate:0 0;scale:1}
}
@keyframes princessCompletionConfirmV11639{
  0%{translate:0 0;scale:1}
  48%{translate:0 1px;scale:.998}
  100%{translate:0 0;scale:1}
}
@keyframes princessTossPrepV11639{
  0%{translate:0 0;rotate:0deg;scale:1}
  100%{translate:-1px -.8px;rotate:-.25deg;scale:1.001}
}
@keyframes princessTossMainV11639{
  0%{translate:-1px -.8px;rotate:-.25deg;scale:1.001}
  38%{translate:1.4px .8px;rotate:.55deg;scale:.999}
  74%{translate:.2px .25px;rotate:.12deg;scale:1}
  100%{translate:0 0;rotate:0deg;scale:1}
}
@keyframes princessReturnDutyV11639{
  0%{translate:.3px .35px;scale:.999}
  70%{translate:0 -.25px;scale:1.001}
  100%{translate:0 0;scale:1}
}
@keyframes crownLowDutyWiggleV11639{
  0%,80%,100%{transform:translateY(var(--crown-rest-y,-60%)) rotate(var(--crown-rest-rot,-2deg))}
  85%{transform:translateY(var(--crown-rest-y,-60%)) rotate(calc(var(--crown-rest-rot,-2deg) + 1.05deg))}
  90%{transform:translateY(var(--crown-rest-y,-60%)) rotate(calc(var(--crown-rest-rot,-2deg) - .85deg))}
  95%{transform:translateY(var(--crown-rest-y,-60%)) rotate(calc(var(--crown-rest-rot,-2deg) + .25deg))}
}

@media (prefers-reduced-motion: reduce){
  .task-note.completing,
  .task-note.completing::before,
  .task-note.completing::after,
  .timer-paper-strip.strip-completing,
  .flying-note.is-reading,
  .mascot-slot .mascot-main,
  .progress-bar::after{
    animation:none!important;
  }
}

/* v11.6.41: 第二界面骨架，只做收工单视图，不碰第一页四块结构。 */
.desk[hidden],
.report-view[hidden]{display:none!important}

.app-shell.is-view-transitioning{
  position:relative;
  pointer-events:none;
  isolation:isolate;
}
.app-shell.is-view-transitioning .desk,
.app-shell.is-view-transitioning .report-view{
  will-change:transform,opacity;
  backface-visibility:hidden;
}
.app-shell.is-view-transitioning.view-to-report > .topbar{
  position:relative;
  z-index:7;
}
.app-shell.is-view-transitioning.view-to-report .desk{
  position:relative;
  z-index:2;
}
.app-shell.is-view-transitioning.view-to-report .report-view{
  position:absolute;
  inset:0;
  z-index:5;
  width:100%;
  height:100%;
  min-height:0;
  overflow:auto;
}
.app-shell.is-view-transitioning.view-to-desk > .topbar{
  display:flex!important;
  position:absolute;
  left:0;
  right:0;
  top:0;
  z-index:7;
}
.app-shell.is-view-transitioning.view-to-desk .desk{
  position:absolute;
  left:0;
  right:0;
  top:50px;
  bottom:0;
  z-index:5;
  min-height:0;
  overflow:visible;
}
.app-shell.is-view-transitioning.view-to-desk .report-view{
  position:absolute;
  inset:0;
  z-index:3;
  width:100%;
  height:100%;
  min-height:0;
  overflow:auto;
}










.archive-turn-overlay{
  position:fixed;
  inset:0;
  z-index:80;
  pointer-events:none;
  overflow:hidden;
  contain:layout paint style;
  isolation:isolate;
}
.archive-turn-overlay::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:transparent;
  opacity:0;
  pointer-events:none;
  will-change:opacity;
  contain:paint;
}
.archive-curtain-transition{
  --curtain-ease:cubic-bezier(.22,.72,.2,1);
  --curtain-open-ease:cubic-bezier(.22,.72,.2,1);
}
.archive-curtain-stage{
  position:fixed;
  inset:0;
  z-index:2;
  pointer-events:none;
  overflow:hidden;
  contain:layout paint style;
  isolation:isolate;
}
.archive-curtain-left-panel,
.archive-curtain-right-panel{
  position:fixed;
  top:0;
  width:51vw;
  height:100vh;
  opacity:1;
  pointer-events:none;
  user-select:none;
  backface-visibility:hidden;
  will-change:transform;
  contain:layout paint style;
  background-repeat:no-repeat;
  background-size:100% 100%;
  transform:translate3d(var(--curtain-x,0),0,0);
  z-index:3;
}
.archive-curtain-left-panel{
  left:-.5vw;
  --curtain-x:-100%;
  background-image:url("assets/left-half-curtain.png");
  background-position:right center;
  transform-origin:left center;
}
.archive-curtain-right-panel{
  right:-.5vw;
  --curtain-x:100%;
  background-image:url("assets/right-half-curtain.png");
  background-position:left center;
  transform-origin:right center;
  z-index:4;
}
.archive-curtain-emblem{
  position:fixed;
  left:50%;
  top:49%;
  width:96px;
  height:auto;
  transform:translate3d(-50%,-50%,0) scale(.985);
  opacity:0;
  z-index:5;
  pointer-events:none;
  user-select:none;
  will-change:transform,opacity;
  contain:layout paint style;
}
.archive-curtain-emblem img{
  display:block;
  width:100%;
  height:auto;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
}
.archive-pull-cord{
  position:absolute;
  right:clamp(82px,12.8vw,198px);
  top:clamp(-30px,-.4vh,-2px);
  width:clamp(40px,4.7vw,53px);
  height:clamp(122px,14.4vh,162px);
  opacity:0;
  transform:translate3d(0,-10px,0);
  transform-origin:center top;
  will-change:transform,opacity;
  backface-visibility:hidden;
  z-index:6;
  background:url("assets/transition-pull-crown.png") center top / contain no-repeat;
  pointer-events:none;
}
.archive-pull-cord::before{
  content:none;
}
.archive-pull-ring{
  display:none;
}
.archive-pull-ring::before{
  content:none;
}
.archive-curtain-label{
  display:none;
}
.archive-curtain-transition.to-report.is-active::before{
  animation:archiveBaseFogToReport 1380ms cubic-bezier(.22,.61,.36,1) both;
}
.archive-curtain-transition.to-desk.is-active::before{
  animation:archiveBaseFogToDesk 960ms cubic-bezier(.22,.61,.36,1) both;
}
.archive-curtain-transition.to-report.is-active .archive-pull-cord{
  animation:archivePullCord 220ms cubic-bezier(.22,.61,.36,1) both;
}
.archive-curtain-transition.to-report.is-active .archive-pull-cord::before{
  animation:archivePullLine 220ms cubic-bezier(.22,.61,.36,1) both;
}
.archive-curtain-transition.to-report.is-active .archive-curtain-left-panel{
  animation:archiveLeftPanelToReport 1380ms var(--curtain-ease) both;
}
.archive-curtain-transition.to-report.is-active .archive-curtain-right-panel{
  animation:archiveRightPanelToReport 1380ms var(--curtain-ease) both;
}
.archive-curtain-transition.to-report.is-active .archive-curtain-emblem{
  animation:archiveCurtainEmblemToReport 1380ms cubic-bezier(.22,.61,.36,1) both;
}
.archive-curtain-transition.to-desk.is-active .archive-curtain-left-panel{
  animation:archiveLeftPanelToDesk 960ms var(--curtain-ease) both;
}
.archive-curtain-transition.to-desk.is-active .archive-curtain-right-panel{
  animation:archiveRightPanelToDesk 960ms var(--curtain-ease) both;
}
.archive-curtain-transition.to-desk.is-active .archive-curtain-emblem{
  animation:archiveCurtainEmblemToDesk 960ms cubic-bezier(.22,.61,.36,1) both;
}
.archive-turn-overlay.is-done::before,
.archive-turn-overlay.is-done .archive-curtain-left-panel,
.archive-turn-overlay.is-done .archive-curtain-right-panel,
.archive-turn-overlay.is-done .archive-curtain-emblem,
.archive-turn-overlay.is-done .archive-pull-cord,
.archive-turn-overlay.is-done .archive-curtain-label{
  opacity:0;
}
@keyframes archiveBaseFogToReport{
  0%,100%{opacity:0}
}
@keyframes archiveBaseFogToDesk{
  0%,100%{opacity:0}
}
@keyframes archivePullCord{
  0%{opacity:0;transform:translate3d(0,-8px,0)}
  18%{opacity:.82;transform:translate3d(0,-2px,0)}
  76%{opacity:.86;transform:translate3d(0,12px,0)}
  100%{opacity:0;transform:translate3d(0,12px,0)}
}
@keyframes archivePullLine{
  0%{opacity:0;transform:translateX(-50%) scaleY(.94)}
  76%{opacity:.68;transform:translateX(-50%) scaleY(1.055)}
  100%{opacity:0;transform:translateX(-50%) scaleY(1.055)}
}
@keyframes archiveLeftPanelToReport{
  0%,18%{transform:translate3d(-100%,0,0)}
  20%{transform:translate3d(-100%,0,0)}
  54%,66%{transform:translate3d(0,0,0)}
  100%{transform:translate3d(-100%,0,0)}
}
@keyframes archiveRightPanelToReport{
  0%,18%{transform:translate3d(100%,0,0)}
  20%{transform:translate3d(100%,0,0)}
  54%,66%{transform:translate3d(0,0,0)}
  100%{transform:translate3d(100%,0,0)}
}
@keyframes archiveCurtainEmblemToReport{
  0%,44%{opacity:0;transform:translate3d(-50%,-50%,0) scale(.985)}
  54%{opacity:.72;transform:translate3d(-50%,-50%,0) scale(.998)}
  54%,66%{opacity:.72;transform:translate3d(-50%,-50%,0) scale(1)}
  74%,100%{opacity:0;transform:translate3d(-50%,-50%,0) scale(1)}
}
@keyframes archiveLeftPanelToDesk{
  0%{transform:translate3d(-100%,0,0)}
  50%,62%{transform:translate3d(0,0,0)}
  100%{transform:translate3d(-100%,0,0)}
}
@keyframes archiveRightPanelToDesk{
  0%{transform:translate3d(100%,0,0)}
  50%,62%{transform:translate3d(0,0,0)}
  100%{transform:translate3d(100%,0,0)}
}
@keyframes archiveCurtainEmblemToDesk{
  0%,38%{opacity:0;transform:translate3d(-50%,-50%,0) scale(.985)}
  50%{opacity:.68;transform:translate3d(-50%,-50%,0) scale(.998)}
  50%,62%{opacity:.68;transform:translate3d(-50%,-50%,0) scale(1)}
  70%,100%{opacity:0;transform:translate3d(-50%,-50%,0) scale(1)}
}

.app-shell.is-report-view{
  grid-template-rows:minmax(0,1fr);
  max-width:1220px;
}
.app-shell.is-report-view > .topbar{display:none}

.report-view{
  position:relative;
  min-height:0;
  height:100%;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:16px;
  overflow:auto;
  padding:6px 4px 4px;
  isolation:isolate;
}
.report-view::before{
  content:"";
  position:absolute;
  inset:3% 4% auto auto;
  width:38%;
  height:46%;
  border-radius:999px;
  background:radial-gradient(circle,rgba(149,133,197,.105),transparent 68%);
  pointer-events:none;
  z-index:-1;
}
.report-bg-trail{
  position:absolute;
  right:5%;
  top:10%;
  width:min(460px,42vw);
  opacity:.045;
  pointer-events:none;
  z-index:-1;
}
.report-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  padding:4px 2px 0;
}
.report-kicker{
  margin:0 0 8px;
  color:#8b8296;
  font-size:13px;
  font-weight:720;
  letter-spacing:.08em;
}
.report-title-block h1{
  margin:0;
  color:var(--ink-strong);
  font-family:var(--font-hand);
  font-size:clamp(34px,4.8vw,58px);
  line-height:1.02;
  font-weight:500;
  letter-spacing:-.03em;
}
.report-subline{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
  color:#7c7488;
  font-size:14px;
  font-weight:650;
}
.report-subline span,
.report-subline time{
  display:inline-flex;
  min-height:30px;
  align-items:center;
  padding:5px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.54);
  border:1px solid var(--line-soft);
}
.report-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
  padding-bottom:4px;
}
.report-head-actions .top-button{background:rgba(255,255,255,.64)}

.report-layout{
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1.32fr) minmax(292px,.68fr);
  grid-template-rows:minmax(0,1fr) auto auto;
  gap:16px;
}
.report-paper,
.report-flow,
.report-periods,
.report-tomorrow{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.62);
  box-shadow:var(--shelf-shadow),inset 0 1px 0 rgba(255,255,255,.42);
  backdrop-filter:blur(28px) saturate(1.03);
  -webkit-backdrop-filter:blur(28px) saturate(1.03);
}
.report-paper::after,
.report-flow::after,
.report-periods::after,
.report-tomorrow::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0) 44%);
}
.report-paper > *,
.report-flow > *,
.report-periods > *,
.report-tomorrow > *{position:relative;z-index:1}

.report-paper{
  grid-row:1 / 4;
  min-height:520px;
  padding:30px 32px 28px;
  border-radius:34px 28px 38px 31px;
  background:
    radial-gradient(circle at 86% 12%,rgba(238,234,246,.72),transparent 34%),
    linear-gradient(180deg,rgba(255,254,248,.82),rgba(249,247,253,.60));
}
.report-paper-head,
.report-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.report-paper-head span{
  color:#4e465a;
  font-family:var(--font-hand);
  font-size:24px;
  font-weight:500;
}
.report-paper-head small,
.report-section-head span{
  color:#9a92a4;
  font-size:12px;
  font-weight:720;
  letter-spacing:.05em;
}
.report-stats{
  display:grid;
  gap:0;
  margin:30px 0 0;
  padding:0;
}
.report-stats div{
  display:grid;
  grid-template-columns:minmax(110px,.45fr) minmax(0,1fr);
  align-items:baseline;
  gap:22px;
  padding:18px 0;
  border-bottom:1px solid rgba(73,63,91,.075);
}
.report-stats dt{
  color:#91889b;
  font-size:14px;
  font-weight:700;
  letter-spacing:.02em;
}
.report-stats dd{
  margin:0;
  color:#4a4356;
  font-family:var(--font-hand);
  font-size:clamp(22px,2.4vw,32px);
  font-weight:500;
  line-height:1.24;
}
.report-comment{
  margin-top:28px;
  padding:20px 22px;
  border-radius:26px 23px 28px 25px;
  background:rgba(255,255,255,.43);
  border:1px solid rgba(91,80,108,.075);
}
.report-comment span{
  display:block;
  margin-bottom:9px;
  color:#91889c;
  font-size:12px;
  font-weight:720;
  letter-spacing:.05em;
}
.report-comment p{
  margin:0;
  color:#5b5267;
  font-family:var(--font-hand);
  font-size:20px;
  line-height:1.55;
  font-weight:400;
}

.report-flow{
  min-height:296px;
  padding:22px;
  border-radius:30px 34px 28px 30px;
  background:linear-gradient(180deg,rgba(255,255,255,.50),rgba(244,241,250,.38));
}
.report-section-head h2{
  margin:0;
  color:#51495c;
  font-size:18px;
  line-height:1.15;
  font-weight:820;
  letter-spacing:-.03em;
}
.report-timeline{
  list-style:none;
  display:grid;
  gap:11px;
  margin:18px 0 0;
  padding:0;
}
.report-timeline-item{
  position:relative;
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:12px;
  align-items:start;
  padding:12px 13px;
  border-radius:22px 19px 24px 20px;
  background:rgba(255,255,255,.40);
  border:1px solid rgba(83,73,101,.065);
}
.report-timeline-item::before{
  content:"";
  position:absolute;
  left:42px;
  top:44px;
  bottom:-14px;
  width:1px;
  background:rgba(124,112,148,.12);
}
.report-timeline-item:last-child::before{display:none}
.report-timeline-item > span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  border-radius:999px;
  background:rgba(239,234,246,.72);
  color:#766c85;
  font-size:12px;
  font-weight:800;
}
.report-timeline-item p{
  margin:3px 0 0;
  color:#6f667a;
  font-size:14px;
  line-height:1.45;
  font-weight:640;
}


.report-periods{
  min-height:168px;
  padding:20px 22px 22px;
  border-radius:29px 31px 27px 33px;
  background:linear-gradient(180deg,rgba(255,255,255,.48),rgba(245,242,251,.34));
}
.report-period-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:16px;
}
.report-period-card{
  position:relative;
  overflow:hidden;
  min-height:138px;
  padding:15px 15px 14px;
  border-radius:22px 19px 24px 20px;
  background:rgba(255,255,255,.40);
  border:1px solid rgba(83,73,101,.065);
}
.report-period-card.month{
  border-radius:20px 24px 19px 23px;
  background:rgba(255,253,248,.38);
}
.report-period-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.report-period-title strong{
  color:#5a5266;
  font-family:var(--font-hand);
  font-size:18px;
  font-weight:500;
}
.report-period-title span{
  color:#9a91a2;
  font-size:11px;
  font-weight:760;
  letter-spacing:.03em;
}
.report-period-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  margin:13px 0 0;
  padding:0;
}
.report-period-stats div{
  min-width:0;
  padding:8px 7px 9px;
  border-radius:14px 12px 15px 13px;
  background:rgba(255,255,255,.42);
  border:1px solid rgba(83,73,101,.052);
}
.report-period-stats dt{
  margin:0 0 4px;
  color:#9a91a2;
  font-size:10px;
  font-weight:760;
}
.report-period-stats dd{
  margin:0;
  color:#51495d;
  font-size:13px;
  line-height:1.18;
  font-weight:820;
  white-space:nowrap;
}
.report-period-main,
.report-period-comment{
  margin:10px 0 0;
  color:#766d81;
  font-size:12px;
  line-height:1.4;
  font-weight:650;
}
.report-period-main{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.report-period-comment{
  margin-top:6px;
  color:#8b8296;
  font-family:var(--font-hand);
  font-size:15px;
  font-weight:400;
}

.report-tomorrow{
  min-height:178px;
  padding:20px 22px 22px;
  border-radius:28px 26px 34px 30px;
  background:linear-gradient(180deg,rgba(255,255,255,.50),rgba(255,253,248,.36));
}
.report-tomorrow-list{
  display:grid;
  gap:9px;
  margin-top:16px;
}
.report-tomorrow-note{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 13px;
  border-radius:18px 15px 19px 16px;
  background:rgba(255,255,255,.44);
  border:1px solid rgba(83,73,101,.065);
}
.report-tomorrow-note strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#5a5266;
  font-family:var(--font-hand);
  font-size:16px;
  font-weight:500;
}
.report-tomorrow-note small{
  flex:0 0 auto;
  color:#938b9e;
  font-size:12px;
  font-weight:650;
}
.report-empty{
  margin:0;
  padding:16px 14px;
  border-radius:18px;
  background:rgba(255,255,255,.34);
  border:1px dashed rgba(93,82,112,.12);
  color:#8e8498;
  font-family:var(--font-hand);
  font-size:16px;
  line-height:1.5;
}

@media (orientation:portrait), (max-width:900px){
  .app-shell.is-report-view{height:auto;min-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px)}
  .report-view{height:auto;min-height:0;overflow:visible;padding:2px 0 10px}
  .report-head{align-items:flex-start;flex-direction:column}
  .report-layout{display:flex;flex-direction:column;gap:12px}
  .report-paper{grid-row:auto;min-height:0;padding:24px 22px;border-radius:30px}
  .report-flow,.report-periods,.report-tomorrow{min-height:0;border-radius:28px;padding:20px}

  .report-period-list{grid-template-columns:1fr}
  .report-period-card{min-height:0}
}

@media (max-width:560px){
  .report-head-actions{width:100%;justify-content:stretch}
  .report-head-actions .top-button{flex:1;padding-inline:10px}
  .report-title-block h1{font-size:36px}
  .report-subline{font-size:13px}
  .report-stats div{grid-template-columns:1fr;gap:7px;padding:15px 0}
  .report-stats dd{font-size:24px}
  .report-comment{padding:18px;border-radius:22px}
  .report-comment p{font-size:19px}
  .report-tomorrow-note{align-items:flex-start;flex-direction:column}
  .report-tomorrow-note small{flex:auto}
}

/* 保证第二界面在小屏也能在自身区域滚动，不牵动第一页。 */
@media (orientation:portrait),(max-width:900px){
  .report-view{overflow:auto}
}

/* v11.6.42: 收工单纸张档案感小修，只增强第二页 CSS 质感。 */
.report-paper::before{
  content:"已归档";
  position:absolute;
  top:26px;
  right:30px;
  z-index:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:92px;
  min-height:36px;
  padding:3px 12px 4px;
  border:1.4px solid rgba(112,99,138,.34);
  border-radius:999px;
  color:rgba(98,86,124,.70);
  font-family:var(--font-hand);
  font-size:22px;
  font-weight:500;
  line-height:1;
  letter-spacing:.13em;
  opacity:.24;
  transform:rotate(-8deg);
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.18);
  pointer-events:none;
}

.report-flow .report-section-head h2,
.report-periods .report-section-head h2,
.report-tomorrow .report-section-head h2{
  position:relative;
  display:inline-flex;
  align-items:center;
}

.report-flow .report-section-head h2{
  gap:8px;
}
.report-flow .report-section-head h2::after{
  content:"";
  display:inline-block;
  flex:0 0 auto;
  width:17px;
  height:14px;
  border:1.2px solid rgba(118,105,143,.30);
  border-radius:4px 3px 5px 3px;
  background:linear-gradient(180deg,rgba(255,254,248,.55),rgba(239,235,247,.28));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.42);
  transform:rotate(-5deg);
  opacity:.82;
}
.report-flow .report-section-head h2::before{
  content:"";
  position:absolute;
  right:4px;
  top:-4px;
  width:7px;
  height:16px;
  border:1px solid rgba(118,105,143,.28);
  border-left:0;
  border-radius:0 7px 7px 0;
  transform:rotate(13deg);
  opacity:.68;
  pointer-events:none;
}

.report-tomorrow .report-section-head h2{
  gap:9px;
}
.report-tomorrow .report-section-head h2::before{
  content:"";
  display:inline-block;
  flex:0 0 auto;
  width:24px;
  height:13px;
  border:1px solid rgba(116,104,139,.20);
  border-bottom-color:rgba(116,104,139,.10);
  border-radius:6px 6px 3px 3px;
  background:linear-gradient(180deg,rgba(255,254,248,.70),rgba(240,237,247,.38));
  box-shadow:0 1px 0 rgba(255,255,255,.45), inset 0 1px 0 rgba(255,255,255,.48);
  transform:translateY(-1px) rotate(-3deg);
  opacity:.9;
}
.report-tomorrow .report-section-head h2::after{
  content:"";
  position:absolute;
  left:9px;
  top:4px;
  width:8px;
  height:8px;
  border-radius:0 0 5px 0;
  border-right:1px solid rgba(116,104,139,.16);
  border-bottom:1px solid rgba(116,104,139,.16);
  transform:rotate(-8deg);
  opacity:.72;
  pointer-events:none;
}

@media (max-width:560px){
  .report-paper::before{
    top:20px;
    right:18px;
    min-width:76px;
    min-height:30px;
    padding-inline:9px;
    font-size:18px;
    opacity:.20;
  }
}

/* v11.6.44: 收工体验闭环，只加强第二页纸条档案感。 */
.report-paper::before{
  content:"已收工";
  color:rgba(91,82,112,.66);
  border-color:rgba(117,104,143,.30);
  opacity:.22;
  transform:rotate(-7deg);
}
.report-flow .report-section-head h2::after{
  width:18px;
  height:15px;
  border-color:rgba(113,101,138,.31);
  background:linear-gradient(180deg,rgba(255,254,248,.62),rgba(236,232,246,.30));
}
.report-flow .report-section-head h2::before{
  border-color:rgba(113,101,138,.30);
  opacity:.72;
}
.report-tomorrow .report-section-head h2::before{
  background:linear-gradient(180deg,rgba(255,254,248,.76),rgba(238,234,247,.42));
  border-color:rgba(116,104,139,.22);
}
.report-tomorrow .report-section-head h2::after{
  opacity:.78;
}

@media (prefers-reduced-motion: reduce){
  .task-note.sweeping-to-archive,
  .task-note.sweeping-to-archive::before,
  .task-note.sweeping-to-archive::after,
  .task-note.sweeping-to-archive .task-check,
  .task-note.sweeping-to-archive .task-note-text,
  .task-note.sweeping-to-archive .task-meta,
  .task-note.sweeping-to-archive .task-actions,
  .archive-turn-overlay,
  .archive-turn-overlay::before,
  .archive-curtain-left-panel,
  .archive-curtain-right-panel,
  .archive-curtain-emblem,
  .archive-pull-cord,
  .archive-pull-ring,
  .archive-curtain-label{
    animation:none!important;
  }
}

/* v11.6.75: 小 bug 修复——左下操作不重叠、底边不露白。 */
html{
  min-height:100%;
  background:
    radial-gradient(circle at 14% 4%,rgba(190,181,213,.15),transparent 26%),
    radial-gradient(circle at 88% 15%,rgba(235,226,206,.20),transparent 27%),
    linear-gradient(135deg,#fbfafc 0%,#f6f4f8 58%,#fffefa 100%);
}
body{
  min-height:100vh;
  min-height:100dvh;
  background-color:#f8f6fa;
  overscroll-behavior:none;
}
.app{
  min-height:100vh;
  min-height:100dvh;
}
body::after{
  content:"";
  position:fixed;
  left:0;
  right:0;
  bottom:-2px;
  height:18px;
  z-index:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(248,246,250,0),#f8f6fa 68%,#f8f6fa 100%);
}
/* v11.6.82 fix: 只给主应用建立页面层级，不覆盖入口、toast、抽屉和幕布浮层的定位。 */
.app{position:relative;z-index:1}

.task-actions{
  justify-content:flex-end;
  align-items:center;
  column-gap:5px;
  row-gap:4px;
  min-width:0;
  overflow:hidden;
}
.task-focus-time{
  flex:1 1 auto;
  min-width:0;
  max-width:calc(100% - 162px)!important;
  margin-right:auto;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.task-actions button{
  flex:0 0 auto;
}
.task-pin-action{
  min-width:48px!important;
  padding-inline:8px!important;
  white-space:nowrap;
}
.task-pin-action::before{
  flex:0 0 12px;
  width:12px;
  height:12px;
}
@media (max-width:760px){
  .task-focus-time{max-width:calc(100% - 150px)!important;font-size:10.5px}
  .task-actions{gap:4px}
  .task-actions button{min-width:31px;padding-inline:7px}
  .task-pin-action{min-width:44px!important;padding-inline:7px!important}
}

/* v11.6.76: 第二页改成“本日 / 本周 / 本月”的文件夹式收工档案。只覆盖第二页结构，不碰第一页和转场。 */
.report-layout.report-folder-layout{
  display:block;
  min-height:0;
  height:100%;
  overflow:hidden;
}
.report-folder{
  position:relative;
  min-height:0;
  height:100%;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  padding:0 2px 2px;
  isolation:isolate;
}
.report-folder-tabs{
  position:relative;
  z-index:2;
  display:flex;
  align-items:flex-end;
  gap:7px;
  padding:0 22px;
  min-height:44px;
}
.report-folder-tab{
  appearance:none;
  -webkit-appearance:none;
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:92px;
  min-height:42px;
  margin:0;
  padding:9px 18px 11px;
  border:1px solid rgba(92,82,111,.12);
  border-bottom:0;
  border-radius:20px 20px 8px 8px;
  background:linear-gradient(180deg,rgba(242,238,248,.58),rgba(229,224,240,.42));
  color:#8b8298;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45);
  font-family:var(--font-hand);
  font-size:19px;
  font-weight:500;
  line-height:1;
  letter-spacing:.02em;
  cursor:pointer;
  transform:translateY(7px);
  transition:transform 180ms cubic-bezier(.22,.61,.36,1), background 180ms ease, color 180ms ease, box-shadow 180ms ease;
}
.report-folder-tab::before{
  content:"";
  position:absolute;
  left:13px;
  right:13px;
  top:7px;
  height:1px;
  background:rgba(255,255,255,.58);
  border-radius:999px;
}
.report-folder-tab.is-active{
  z-index:3;
  color:#574d63;
  background:linear-gradient(180deg,rgba(255,254,249,.92),rgba(250,247,254,.80));
  box-shadow:0 -3px 12px rgba(77,65,101,.07),inset 0 1px 0 rgba(255,255,255,.72);
  transform:translateY(1px);
}
.report-folder-body{
  position:relative;
  min-height:0;
  overflow-y:auto;
  padding:24px;
  border:1px solid rgba(255,255,255,.64);
  border-radius:34px 30px 36px 32px;
  background:
    radial-gradient(circle at 14% 0%,rgba(255,255,255,.62),transparent 34%),
    radial-gradient(circle at 94% 9%,rgba(232,226,244,.50),transparent 35%),
    linear-gradient(180deg,rgba(255,254,249,.78),rgba(246,243,251,.58));
  box-shadow:var(--shelf-shadow),inset 0 1px 0 rgba(255,255,255,.46);
  backdrop-filter:blur(26px) saturate(1.02);
  -webkit-backdrop-filter:blur(26px) saturate(1.02);
}
.report-folder-body::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,0) 38%);
}
.report-folder-panel{
  position:relative;
  z-index:1;
  min-height:0;
}
.report-folder-panel.is-switching{
  animation:reportFolderPanelIn 190ms cubic-bezier(.22,.61,.36,1) both;
}
@keyframes reportFolderPanelIn{
  from{opacity:.56;transform:translateY(5px)}
  to{opacity:1;transform:translateY(0)}
}
.report-folder-panel-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:16px;
  padding:0 2px;
}
.report-folder-panel-head p{
  margin:0 0 5px;
  color:#9a91a4;
  font-size:12px;
  font-weight:780;
  letter-spacing:.08em;
}
.report-folder-panel-head h2{
  margin:0;
  color:#51495c;
  font-family:var(--font-hand);
  font-size:clamp(25px,3vw,34px);
  font-weight:500;
  line-height:1.05;
  letter-spacing:-.025em;
}
.report-folder-panel-head > span{
  display:inline-flex;
  align-items:center;
  min-height:29px;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.48);
  border:1px solid rgba(92,82,111,.08);
  color:#8d8499;
  font-size:12px;
  font-weight:760;
  white-space:nowrap;
}
.report-day-grid{
  min-height:0;
  display:grid;
  grid-template-columns:minmax(300px,.88fr) minmax(0,1.12fr);
  grid-template-rows:minmax(260px,auto) minmax(160px,auto);
  gap:14px;
}
.report-folder .report-paper,
.report-folder .report-flow,
.report-folder .report-periods,
.report-folder .report-tomorrow,
.report-detail-card{
  min-height:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.58);
  box-shadow:0 14px 36px rgba(50,42,70,.09),inset 0 1px 0 rgba(255,255,255,.42);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.report-folder .report-paper{
  grid-row:1 / 3;
  padding:24px 26px 24px;
  border-radius:31px 27px 35px 29px;
}
.report-folder .report-flow{
  padding:21px 22px;
  border-radius:28px 31px 26px 29px;
}
.report-folder .report-tomorrow{
  padding:20px 22px 22px;
  border-radius:26px 24px 31px 28px;
}
.report-folder .report-stats{
  margin-top:22px;
}
.report-folder .report-stats div{
  padding:14px 0;
}
.report-folder .report-comment{
  margin-top:22px;
}
.report-folder .report-timeline{
  max-height:none;
}
.report-folder-columns{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
  margin-top:14px;
}
.report-period-detail,
.report-detail-card{
  position:relative;
  padding:21px 22px 22px;
  border-radius:28px 31px 26px 30px;
  background:linear-gradient(180deg,rgba(255,255,255,.48),rgba(244,241,250,.34));
}
.report-period-detail.month{
  background:linear-gradient(180deg,rgba(255,254,249,.52),rgba(244,241,250,.36));
}
.report-summary-stats.report-period-stats{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
}
.report-summary-stats.report-period-stats div{
  padding:10px 9px 11px;
}
.report-summary-stats.report-period-stats dd{
  white-space:normal;
  font-size:14px;
  line-height:1.28;
}
.report-folder .report-period-main{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  margin-top:14px;
}
.report-folder .report-period-comment{
  margin-top:7px;
  font-size:16px;
}
.report-daily-list,
.report-chip-list,
.report-week-list{
  display:grid;
  gap:9px;
  margin-top:15px;
}
.report-daily-row,
.report-chip-row,
.report-week-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 13px;
  border-radius:19px 16px 20px 17px;
  background:rgba(255,255,255,.40);
  border:1px solid rgba(83,73,101,.062);
}
.report-week-card{
  display:grid;
  grid-template-columns:auto minmax(70px,1fr) auto;
}
.report-daily-row strong,
.report-chip-row strong,
.report-week-card strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#5a5266;
  font-family:var(--font-hand);
  font-size:17px;
  font-weight:500;
}
.report-daily-row span,
.report-chip-row span,
.report-week-card span,
.report-week-card small{
  color:#8e8599;
  font-size:12px;
  font-weight:710;
  white-space:nowrap;
}
.report-week-card small{
  justify-self:start;
}
.report-chip-row strong{
  font-size:16px;
  font-family:var(--font-ui);
  font-weight:800;
}
.report-folder .report-empty{
  background:rgba(255,255,255,.36);
}

@media (orientation:portrait),(max-width:900px){
  .report-layout.report-folder-layout{height:auto;overflow:visible}
  .report-folder{height:auto;display:block}
  .report-folder-tabs{padding:0 12px;overflow-x:auto;scrollbar-width:none}
  .report-folder-tabs::-webkit-scrollbar{display:none}
  .report-folder-tab{min-width:82px;font-size:18px;padding-inline:16px}
  .report-folder-body{overflow:visible;padding:18px;border-radius:30px}
  .report-day-grid{display:flex;flex-direction:column;gap:12px}
  .report-folder .report-paper{grid-row:auto;padding:22px}
  .report-folder-columns{grid-template-columns:1fr;gap:12px}
  .report-summary-stats.report-period-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .report-folder-body{padding:14px;border-radius:26px}
  .report-folder-tabs{padding:0 6px;gap:5px}
  .report-folder-tab{min-width:72px;min-height:38px;font-size:17px;transform:translateY(6px)}
  .report-folder-panel-head{align-items:flex-start;flex-direction:column;gap:8px}
  .report-week-card{grid-template-columns:1fr;gap:4px;align-items:start}
  .report-daily-row,.report-chip-row{align-items:flex-start;flex-direction:column;gap:5px}
  .report-summary-stats.report-period-stats{grid-template-columns:1fr}
}

/* v11.6.77: 体验收口版。只做状态提示、档案夹质感和转场微调。 */
.task-note[data-lifecycle="watching"],
.task-note[data-lifecycle="pinned"]{
  border-color:rgba(149,133,197,.24)!important;
  background:linear-gradient(180deg,rgba(255,254,249,.94),rgba(248,246,255,.86))!important;
}
.task-note[data-lifecycle="pending-archive"]{
  border-color:rgba(165,145,93,.18)!important;
  background:linear-gradient(180deg,rgba(255,254,247,.94),rgba(249,244,232,.78))!important;
  box-shadow:0 13px 27px rgba(107,88,55,.075),0 2px 5px rgba(68,57,84,.025),inset 0 1px 0 rgba(255,255,255,.76)!important;
}
.task-note[data-lifecycle="pending-archive"]::after{
  background:linear-gradient(180deg,rgba(255,251,236,.76),rgba(214,197,154,.28));
  border-color:rgba(137,116,73,.08);
}
.task-row.done .task-title{
  text-decoration:none!important;
  color:#837a91;
}
.task-row.done .task-note-text{
  text-decoration:line-through;
  text-decoration-thickness:1px;
  text-decoration-color:rgba(126,114,143,.46);
  color:#92899c;
}
.task-state-pill{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  min-height:22px;
  margin-top:7px;
  padding:3px 9px 4px;
  border-radius:999px;
  color:#796f89;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(91,80,108,.075);
  font-family:var(--font-ui);
  font-size:11px;
  line-height:1.2;
  font-weight:760;
  letter-spacing:.01em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.task-note[data-lifecycle="watching"] .task-state-pill{
  color:#625779;
  background:rgba(149,133,197,.13);
  border-color:rgba(149,133,197,.20);
}
.task-note[data-lifecycle="pending-archive"] .task-state-pill{
  color:#7b6a46;
  background:rgba(255,250,235,.74);
  border-color:rgba(165,145,93,.16);
}
.task-note.completing .task-state-pill,
.task-note.sweeping-to-archive .task-state-pill{
  animation:noteTextVanish 420ms ease both!important;
}
.task-actions{
  align-items:center!important;
}
.task-focus-time{
  display:none!important;
}

.report-folder-tabs{
  gap:0!important;
  padding-left:28px!important;
  padding-right:28px!important;
}
.report-folder-tabs::before{
  content:"";
  position:absolute;
  left:20px;
  right:20px;
  bottom:0;
  height:12px;
  border-radius:16px 16px 0 0;
  background:linear-gradient(180deg,rgba(238,233,247,.44),rgba(230,224,240,.20));
  border:1px solid rgba(92,82,111,.06);
  border-bottom:0;
  pointer-events:none;
  z-index:0;
}
.report-folder-tab{
  min-width:96px!important;
  margin-right:-10px!important;
  border-radius:22px 22px 7px 7px!important;
  background:linear-gradient(180deg,rgba(238,233,246,.72),rgba(225,219,238,.50))!important;
  border-color:rgba(92,82,111,.10)!important;
  color:#948b9f!important;
  transform:translateY(9px) rotate(var(--tab-rot,-.4deg))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.42),0 -1px 4px rgba(72,60,92,.025)!important;
}
.report-folder-tab:nth-child(2){--tab-rot:.35deg;z-index:1}
.report-folder-tab:nth-child(3){--tab-rot:-.25deg;z-index:0}
.report-folder-tab.is-active{
  z-index:6!important;
  color:#51485d!important;
  background:linear-gradient(180deg,rgba(255,254,249,.96),rgba(251,248,254,.88))!important;
  transform:translateY(1px) rotate(0deg)!important;
  box-shadow:0 -4px 13px rgba(77,65,101,.075),inset 0 1px 0 rgba(255,255,255,.80)!important;
}
.report-folder-body{
  background:
    radial-gradient(circle at 13% 1%,rgba(255,255,255,.66),transparent 31%),
    linear-gradient(180deg,rgba(255,254,249,.90),rgba(247,244,251,.78))!important;
  border-color:rgba(236,230,244,.74)!important;
  box-shadow:0 18px 42px rgba(50,42,70,.08),inset 0 1px 0 rgba(255,255,255,.64)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.report-folder-body::after{
  content:"";
  position:absolute;
  left:22px;
  right:22px;
  top:52px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(112,99,133,.08),transparent);
  pointer-events:none;
}
.report-folder .report-paper,
.report-folder .report-flow,
.report-folder .report-tomorrow,
.report-folder .report-periods,
.report-detail-card{
  background:linear-gradient(180deg,rgba(255,255,255,.58),rgba(249,247,253,.46))!important;
  border-color:rgba(91,80,108,.075)!important;
  box-shadow:0 10px 24px rgba(50,42,70,.055),inset 0 1px 0 rgba(255,255,255,.56)!important;
}
.report-folder .report-paper{
  background:
    linear-gradient(90deg,rgba(126,108,148,.045) 0 1px,transparent 1px 100%) 0 74px/100% 1px no-repeat,
    linear-gradient(180deg,rgba(255,255,255,.64),rgba(250,248,253,.50))!important;
}
.report-folder .report-flow{
  background:linear-gradient(180deg,rgba(255,255,255,.58),rgba(247,244,252,.44))!important;
}
.report-folder .report-tomorrow{
  background:linear-gradient(180deg,rgba(255,254,249,.62),rgba(248,244,235,.42))!important;
}
.report-folder-panel-head{
  margin-bottom:14px!important;
}
.report-folder-panel-head h2{
  letter-spacing:-.018em!important;
}
.report-folder .report-stats{
  margin-top:18px!important;
  gap:8px!important;
}
.report-folder .report-stats div{
  grid-template-columns:minmax(86px,.38fr) minmax(0,1fr)!important;
  gap:12px!important;
  padding:12px 13px!important;
  border-radius:18px 16px 19px 17px;
  background:rgba(255,255,255,.36);
  border:1px solid rgba(83,73,101,.052)!important;
}
.report-folder .report-stats dt{
  font-size:12px!important;
}
.report-folder .report-stats dd{
  font-size:clamp(17px,1.7vw,23px)!important;
}
.report-folder .report-comment{
  margin-top:14px!important;
  padding:15px 17px!important;
  background:rgba(255,255,255,.40)!important;
}
.report-timeline-item{
  grid-template-columns:52px minmax(0,1fr)!important;
  background:rgba(255,255,255,.46)!important;
  border-color:rgba(83,73,101,.06)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.42);
}
.report-timeline-item > span{
  min-height:26px!important;
  background:rgba(236,231,244,.80)!important;
}
.report-timeline-item p{
  font-size:13px!important;
  line-height:1.5!important;
  color:#675f73!important;
}
.report-tomorrow-note,
.report-daily-row,
.report-chip-row,
.report-week-card{
  background:rgba(255,255,255,.46)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.40);
}
.report-tomorrow-note{
  border-style:dashed!important;
  transform:rotate(-.15deg);
}
.report-period-detail::before,
.report-detail-card::before{
  content:"";
  position:absolute;
  left:18px;
  top:14px;
  width:42px;
  height:9px;
  border-radius:999px;
  background:rgba(219,211,232,.28);
  transform:rotate(-2deg);
  pointer-events:none;
}
.report-summary-stats.report-period-stats div{
  background:rgba(255,255,255,.38)!important;
}
.report-folder .report-period-comment{
  color:#7d7388!important;
}
.report-folder .report-empty{
  border:1px dashed rgba(91,80,108,.11)!important;
  color:#8c8498!important;
}
.report-folder-panel.is-switching{
  animation:reportFolderPanelInSoft 180ms cubic-bezier(.22,.61,.36,1) both!important;
}
@keyframes reportFolderPanelInSoft{
  from{opacity:.62;transform:translateY(4px)}
  to{opacity:1;transform:translateY(0)}
}

.archive-curtain-transition.to-report.is-active::before{
  animation:archiveBaseFogToReport 1440ms cubic-bezier(.22,.61,.36,1) both!important;
}
.archive-curtain-transition.to-desk.is-active::before{
  animation:archiveBaseFogToDesk 980ms cubic-bezier(.22,.61,.36,1) both!important;
}
.archive-curtain-transition.to-report.is-active .archive-pull-cord{
  animation:archivePullCord77 210ms cubic-bezier(.25,.68,.24,1) both!important;
}
.archive-curtain-transition.to-report.is-active .archive-curtain-left-panel{
  animation:archiveLeftPanelToReport77 1440ms var(--curtain-ease) both!important;
}
.archive-curtain-transition.to-report.is-active .archive-curtain-right-panel{
  animation:archiveRightPanelToReport77 1440ms var(--curtain-ease) both!important;
}
.archive-curtain-transition.to-report.is-active .archive-curtain-emblem{
  animation:archiveCurtainEmblemToReport77 1440ms cubic-bezier(.22,.61,.36,1) both!important;
}
.archive-curtain-transition.to-desk.is-active .archive-curtain-left-panel{
  animation:archiveLeftPanelToDesk77 980ms var(--curtain-ease) both!important;
}
.archive-curtain-transition.to-desk.is-active .archive-curtain-right-panel{
  animation:archiveRightPanelToDesk77 980ms var(--curtain-ease) both!important;
}
.archive-curtain-transition.to-desk.is-active .archive-curtain-emblem{
  animation:archiveCurtainEmblemToDesk77 980ms cubic-bezier(.22,.61,.36,1) both!important;
}
@keyframes archivePullCord77{
  0%{opacity:0;transform:translate3d(0,-8px,0)}
  20%{opacity:.80;transform:translate3d(0,-2px,0)}
  72%{opacity:.84;transform:translate3d(0,12px,0)}
  100%{opacity:0;transform:translate3d(0,12px,0)}
}
@keyframes archiveLeftPanelToReport77{
  0%,19%{transform:translate3d(-100%,0,0)}
  21%{transform:translate3d(-100%,0,0)}
  54%,65%{transform:translate3d(0,0,0)}
  100%{transform:translate3d(-100%,0,0)}
}
@keyframes archiveRightPanelToReport77{
  0%,19%{transform:translate3d(100%,0,0)}
  21%{transform:translate3d(100%,0,0)}
  54%,65%{transform:translate3d(0,0,0)}
  100%{transform:translate3d(100%,0,0)}
}
@keyframes archiveCurtainEmblemToReport77{
  0%,46%{opacity:0;transform:translate3d(-50%,-50%,0) scale(.985)}
  55%{opacity:.68;transform:translate3d(-50%,-50%,0) scale(.998)}
  55%,65%{opacity:.68;transform:translate3d(-50%,-50%,0) scale(1)}
  72%,100%{opacity:0;transform:translate3d(-50%,-50%,0) scale(1)}
}
@keyframes archiveLeftPanelToDesk77{
  0%{transform:translate3d(-100%,0,0)}
  50%,63%{transform:translate3d(0,0,0)}
  100%{transform:translate3d(-100%,0,0)}
}
@keyframes archiveRightPanelToDesk77{
  0%{transform:translate3d(100%,0,0)}
  50%,63%{transform:translate3d(0,0,0)}
  100%{transform:translate3d(100%,0,0)}
}
@keyframes archiveCurtainEmblemToDesk77{
  0%,39%{opacity:0;transform:translate3d(-50%,-50%,0) scale(.985)}
  51%{opacity:.64;transform:translate3d(-50%,-50%,0) scale(.998)}
  51%,63%{opacity:.64;transform:translate3d(-50%,-50%,0) scale(1)}
  71%,100%{opacity:0;transform:translate3d(-50%,-50%,0) scale(1)}
}

@media (orientation:portrait),(max-width:900px){
  .report-folder-tabs{padding-left:16px!important;padding-right:16px!important;gap:0!important}
  .report-folder-tab{min-width:86px!important;margin-right:-8px!important}
  .report-folder-body{overflow:visible!important}
}
@media (max-width:560px){
  .task-state-pill{font-size:10.5px;max-width:calc(100vw - 170px)}
  .report-folder-tabs{padding-left:8px!important;padding-right:8px!important}
  .report-folder-tab{min-width:74px!important;margin-right:-5px!important}
  .report-folder .report-stats div{grid-template-columns:1fr!important;gap:5px!important}
}

/* v11.6.78: drawer placement + compose title hierarchy polish */
.compose-card .line-row{
  align-items:center;
  gap:10px;
  min-height:70px;
}
.compose-card .line-row h1.scene-title,
.compose-card .line-row h1#currentShell{
  flex:0 1 auto;
  min-width:0;
  display:inline-flex;
  align-items:center;
  gap:10px;
  max-width:100%;
  margin:0;
  color:var(--ink-strong);
  font-size:clamp(38px,4.85vw,62px);
  line-height:.98;
  letter-spacing:-.052em;
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip;
}
.scene-main{
  display:inline-block;
  max-width:min(9em,58vw);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.scene-pill{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:4px 10px 4px 11px;
  border-radius:999px;
  border:1px solid rgba(104,92,126,.11);
  background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(247,245,252,.62));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.78),0 6px 14px rgba(70,58,90,.035);
  color:#776d86;
  font-family:var(--font-ui);
  font-size:14px;
  line-height:1;
  font-weight:760;
  letter-spacing:.02em;
  transform:translateY(3px);
}
.compose-card .line-row .swap-action{
  flex:0 0 auto;
  min-height:38px;
  padding-inline:13px 15px;
  border-color:rgba(94,82,114,.12);
  background:rgba(255,255,255,.70);
  color:#62586f;
  box-shadow:0 8px 18px rgba(70,58,90,.04),inset 0 1px 0 rgba(255,255,255,.72);
}
.compose-card .line-row .swap-action:hover{
  background:rgba(255,255,255,.88);
  box-shadow:0 10px 22px rgba(70,58,90,.06),inset 0 1px 0 rgba(255,255,255,.78);
}
.compose-card .thin-copy{
  margin-top:-2px;
  color:#7f778b;
  font-size:16px;
}
#drawerSheet.sheet-backdrop{
  background:rgba(38,32,49,.075);
  transition:opacity 190ms ease,visibility 190ms ease;
}
#drawerSheet .sheet.drawer{
  position:fixed;
  left:auto;
  right:clamp(28px,3vw,40px);
  top:clamp(88px,10vh,104px);
  bottom:auto;
  width:min(520px,42vw);
  max-height:calc(100dvh - 140px);
  overflow:auto;
  transform:translate3d(16px,-4px,0);
  opacity:0;
  border-radius:30px 24px 30px 30px;
  background:linear-gradient(180deg,rgba(255,254,249,.94),rgba(249,247,255,.88));
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 24px 62px rgba(57,48,72,.145),inset 0 1px 0 rgba(255,255,255,.76);
  backdrop-filter:blur(20px) saturate(1.02);
  -webkit-backdrop-filter:blur(20px) saturate(1.02);
  padding:14px 16px 16px;
  transition:transform 190ms cubic-bezier(.22,.61,.36,1),opacity 190ms ease;
  will-change:transform,opacity;
}
#drawerSheet.open .sheet.drawer{
  transform:translate3d(0,0,0);
  opacity:1;
}
#drawerSheet .drawer-grip,
#drawerSheet .sheet-grip.drawer-grip{
  width:54px;
  height:7px;
  margin:0 4px 12px auto;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(180,170,196,.34),rgba(133,119,157,.18));
  border:1px solid rgba(110,96,132,.07);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 5px 12px rgba(70,58,90,.035);
}
#drawerSheet .drawer-head{
  align-items:flex-start;
  min-height:42px;
  padding:0 2px 4px;
}
.drawer-title-block{
  display:grid;
  gap:4px;
}
.drawer-title-block strong{
  color:#4d465a;
  font-size:22px;
  line-height:1;
  letter-spacing:-.035em;
}
.drawer-title-block span{
  color:#92889f;
  font-size:12px;
  line-height:1;
  font-weight:760;
  letter-spacing:.08em;
}
#drawerSheet .drawer-head .ghost-action{
  min-height:36px;
  padding-inline:13px;
  background:rgba(255,255,255,.58);
}
#drawerSheet .notes-label{
  margin-top:10px;
  margin-left:4px;
  color:#8f869a;
  letter-spacing:.08em;
}
#drawerSheet .drawer textarea{
  min-height:190px;
  border-radius:22px;
  background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(250,249,253,.68));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.74),0 8px 18px rgba(70,58,90,.035);
}
#drawerSheet .drawer-actions{
  margin-top:12px;
  justify-content:flex-start;
}
#drawerSheet .drawer p{
  margin-top:10px;
  font-size:12px;
  color:#9b92a6;
}
@media (max-width:980px){
  #drawerSheet .sheet.drawer{
    right:24px;
    width:min(460px,46vw);
    top:88px;
  }
}
@media (max-width:720px){
  .compose-card .line-row{
    min-height:auto;
    flex-wrap:wrap;
  }
  .compose-card .line-row h1.scene-title,
  .compose-card .line-row h1#currentShell{
    font-size:38px;
    gap:8px;
  }
  .scene-main{max-width:calc(100vw - 160px)}
  .scene-pill{
    min-height:25px;
    padding:4px 9px;
    font-size:12px;
    transform:translateY(2px);
  }
  #drawerSheet .sheet.drawer{
    left:50%;
    right:auto;
    top:auto;
    bottom:calc(env(safe-area-inset-bottom) + 9px);
    width:calc(100vw - 18px);
    max-height:min(72vh,620px);
    border-radius:28px;
    transform:translateX(-50%) translateY(18px);
  }
  #drawerSheet.open .sheet.drawer{
    transform:translateX(-50%) translateY(0);
  }
  #drawerSheet .drawer textarea{min-height:130px}
}
@media (max-width:560px){
  .compose-card .line-row h1.scene-title,
  .compose-card .line-row h1#currentShell{font-size:36px}
  .compose-card .line-row .swap-action{min-height:36px}
}

/* v11.6.79: separate current duty scene from paper project */
.project-picker{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
  max-width:760px;
  margin-top:-4px;
  margin-bottom:-2px;
}
.project-picker>span{
  flex:0 0 auto;
  color:#91889d;
  font-size:12px;
  line-height:1;
  font-weight:760;
  letter-spacing:.05em;
}
.project-chips{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.project-chips button{
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid rgba(98,86,119,.10);
  background:rgba(255,255,255,.48);
  color:#7a7187;
  font-size:12px;
  line-height:1;
  font-weight:740;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55);
}
.project-chips button:hover{
  background:rgba(255,255,255,.76);
  border-color:rgba(98,86,119,.16);
}
.project-chips button.active{
  background:rgba(149,133,197,.16);
  color:#5f5378;
  border-color:rgba(149,133,197,.22);
}
.compose-card .line-row .swap-action{
  min-width:auto;
}
.task-title .task-meta{
  font-family:var(--font-ui);
  font-size:11.5px;
  color:#948c9f;
  letter-spacing:.015em;
}
.report-timeline-item p{
  line-height:1.55;
}
@media (max-width:720px){
  .project-picker{gap:7px;margin-top:-2px}
  .project-picker>span{width:100%}
  .project-chips{gap:5px}
  .project-chips button{min-height:27px;padding:0 9px;font-size:11.5px}
}

/* v11.6.81: 值班牌 / 归档抽屉概念收口 */
#pickerSheet.sheet-backdrop{
  background:rgba(38,32,49,.065);
  transition:opacity 180ms ease,visibility 180ms ease;
}
#pickerSheet .sheet{
  position:fixed;
  left:clamp(22px,3.2vw,42px);
  top:clamp(96px,12vh,128px);
  bottom:auto;
  width:min(380px,calc(100vw - 44px));
  max-height:min(520px,calc(100dvh - 132px));
  transform:translate3d(-8px,8px,0);
  opacity:0;
  padding:12px 14px 16px;
  border-radius:26px 24px 28px 24px;
  background:linear-gradient(180deg,rgba(255,254,249,.95),rgba(249,247,255,.90));
  border:1px solid rgba(255,255,255,.76);
  box-shadow:0 22px 58px rgba(58,48,76,.14),inset 0 1px 0 rgba(255,255,255,.78);
  backdrop-filter:blur(20px) saturate(1.02);
  -webkit-backdrop-filter:blur(20px) saturate(1.02);
  transition:transform 190ms cubic-bezier(.22,.61,.36,1),opacity 180ms ease;
  will-change:transform,opacity;
}
#pickerSheet.open .sheet{
  transform:translate3d(0,0,0);
  opacity:1;
}
#pickerSheet .sheet-grip{
  width:46px;
  height:6px;
  margin:0 4px 11px 0;
  background:linear-gradient(180deg,rgba(184,174,199,.34),rgba(132,118,156,.16));
  border:1px solid rgba(110,96,132,.06);
}
#pickerSheet .sheet-head{
  min-height:38px;
  padding:0 2px;
}
#pickerSheet .sheet-head strong{
  font-size:21px;
  color:#4c4558;
  letter-spacing:-.04em;
}
.picker-subcopy{
  margin:2px 4px 12px;
  color:#8e849a;
  font-size:12.5px;
  line-height:1.55;
  font-weight:640;
}
#pickerSheet .sheet-block{
  margin-top:10px;
}
#pickerSheet .sheet-block>span{
  margin-left:4px;
  color:#8f859b;
  letter-spacing:.075em;
}
#pickerSheet .chip-row{
  gap:7px;
}
#pickerSheet .chip-row button{
  min-height:38px;
  padding:0 13px;
  border-radius:999px 999px 999px 12px;
  background:rgba(255,255,255,.52);
  color:#695f75;
  border-color:rgba(98,86,119,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.62);
}
#pickerSheet .chip-row button.active{
  background:rgba(91,79,116,.88);
  color:#fff;
  border-color:transparent;
}
.project-picker{
  border-radius:20px;
  padding:8px 9px 9px;
  background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.12));
  border:1px solid rgba(104,92,126,.055);
}
.project-picker>span{
  color:#877d94;
  letter-spacing:.06em;
}
.project-chips button{
  border-radius:999px 999px 999px 10px;
}
.project-chips button.active{
  background:rgba(112,99,143,.17);
  border-color:rgba(112,99,143,.24);
}
@media (max-width:720px){
  #pickerSheet .sheet{
    left:50%;
    top:auto;
    bottom:calc(env(safe-area-inset-bottom) + 9px);
    width:calc(100vw - 18px);
    max-height:min(72vh,620px);
    border-radius:28px;
    transform:translateX(-50%) translateY(18px);
  }
  #pickerSheet.open .sheet{
    transform:translateX(-50%) translateY(0);
  }
}
