:root{--p-high:#f0b04e;--p-mid:#79a6ea;--p-low:#78c79d}
[data-p=high]{--pc:var(--p-high)}
[data-p=mid]{--pc:var(--p-mid)}
[data-p=low]{--pc:var(--p-low)}
.pri-tag i,.qc i{background:var(--pc,var(--text));box-shadow:0 0 0 3px rgba(255,255,255,.04)}
.pri-tag i{box-shadow:0 0 10px color-mix(in srgb,var(--pc,transparent) 55%,transparent)}
.tcard .edge{background:var(--pc,var(--text));box-shadow:0 0 14px color-mix(in srgb,var(--pc,#f2efe9) 55%,transparent)}
.pri u{background:var(--pc,var(--text))}
.pri .r b{color:var(--text)}
.pdot{display:none}
@media (max-width:1180px){
  .row .pdot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--pc,var(--text));margin-right:9px;vertical-align:1px;box-shadow:0 0 9px color-mix(in srgb,var(--pc,transparent) 55%,transparent)}
}

.fl{display:block}
.fl-t{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}
.pchips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pc{display:flex;align-items:center;justify-content:center;gap:8px;height:42px;border-radius:14px;background:var(--s2);box-shadow:inset 0 0 0 1px var(--ring);font-size:13px;color:var(--soft);transition:background-color .2s ease,box-shadow .2s ease,color .2s ease,transform .15s ease}
.pc i{width:8px;height:8px;border-radius:50%;background:var(--pc);flex:none;opacity:.55;transition:opacity .2s ease,box-shadow .2s ease}
.pc:hover{color:var(--text)}
.pc:active{transform:scale(.97)}
.pc.on{color:var(--text);background:#0e0e11;box-shadow:inset 0 0 0 1.5px var(--pc,var(--ring))}
@supports (background:color-mix(in srgb,red 10%,blue)){
  .pc.on{background:color-mix(in srgb,var(--pc) 13%,#0b0b0e)}
}
.pc.on i{opacity:1;box-shadow:0 0 12px var(--pc)}
.row2.solo{grid-template-columns:1fr}

.modal .sheet{padding:24px 26px 0;gap:14px;overscroll-behavior:contain}
.modal .sheet h2{font-size:24px}
.modal .modal-actions{position:sticky;bottom:0;margin:6px -26px 0;padding:14px 26px calc(18px + env(safe-area-inset-bottom));background:linear-gradient(to top,#08080a 72%,rgba(8,8,10,0));box-shadow:none}
.modal .sheet .row2{grid-template-columns:1fr 1fr}
.modal .sheet .row2.solo{grid-template-columns:1fr}
.modal .sheet .error:empty{display:none}
.modal textarea{min-height:54px}

.dtbtn{display:none;align-items:center;gap:10px;width:100%;text-align:left;background:var(--s2);border-radius:14px;padding:11px 15px;box-shadow:inset 0 0 0 1px var(--ring);font-size:14px;color:var(--text);transition:box-shadow .15s ease}
.dtbtn:hover,.dtbtn[aria-expanded=true]{box-shadow:inset 0 0 0 1px rgba(242,239,233,.4)}
.dtbtn #dtText{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dtbtn em{font-style:normal;font-size:12px;color:var(--muted)}
.dtbtn svg{color:var(--muted);flex:none}
.dthint{font-size:12px;color:var(--muted);margin-top:8px}
.dthint:empty{display:none}
@media (hover:hover) and (pointer:fine){
  #tDeadline{display:none}
  .dtbtn{display:flex}
}
.dtpanel{scroll-margin-bottom:96px;display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:14px 20px;margin-top:8px;padding:16px;border-radius:22px;background:#0b0b0e;box-shadow:inset 0 0 0 1px var(--ring),0 24px 60px rgba(0,0,0,.55);animation:dpin .22s cubic-bezier(.2,.8,.2,1)}
@keyframes dpin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.dp-head b{font-family:var(--disp);font-weight:300;font-size:17px;letter-spacing:-.01em}
.dn{width:32px;height:32px;border-radius:50%;font-size:18px;line-height:1;color:var(--soft);box-shadow:inset 0 0 0 1px var(--ring);transition:background-color .15s ease,color .15s ease}
.dn:hover{background:rgba(255,255,255,.08);color:var(--text)}
.dp-wd,.dp-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.dp-wd span{font-size:11px;color:var(--dim);text-align:center;padding-bottom:6px}
.dc{position:relative;height:36px;border-radius:12px;font-size:13px;color:var(--soft);font-variant-numeric:tabular-nums;transition:background-color .15s ease,color .15s ease}
.dc:hover{background:rgba(255,255,255,.08);color:var(--text)}
.dc.out{color:#55524c}
.dc.today{box-shadow:inset 0 0 0 1px rgba(242,239,233,.45)}
.dc.on{background:var(--text);color:#000;font-weight:500}
.dc.busy::after{content:"";position:absolute;left:50%;bottom:4px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:currentColor;opacity:.6}
.dp-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px;height:100%}
.dp-col{display:flex;flex-direction:column;gap:2px;max-height:290px;overflow-y:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent)}
.dp-col::-webkit-scrollbar{display:none}
.tm{flex:none;height:34px;border-radius:10px;font-size:13px;color:var(--soft);font-variant-numeric:tabular-nums;transition:background-color .15s ease,color .15s ease}
.tm:hover{background:rgba(255,255,255,.08);color:var(--text)}
.tm.on{background:var(--text);color:#000;font-weight:500}
.dp-foot{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid var(--line)}
.dp-quick{display:flex;flex-wrap:wrap;gap:6px}
.tq{height:30px;padding:0 12px;border-radius:99px;font-size:12px;color:var(--soft);box-shadow:inset 0 0 0 1px var(--ring);transition:background-color .15s ease,color .15s ease}
.tq:hover{color:var(--text);background:rgba(255,255,255,.06)}
.tq.on{background:rgba(242,239,233,.14);color:var(--text)}
.dp-act{display:flex;align-items:center;gap:8px}
.dl{height:32px;padding:0 14px;border-radius:99px;font-size:12px;color:var(--soft);transition:color .15s ease}
.dl:hover{color:var(--text)}
.dl.strong{background:var(--text);color:#000;font-weight:500}
.dl.strong:hover{color:#000;opacity:.88}

@media (max-width:640px){
  .modal{place-items:end stretch;padding:0}
  .modal .sheet{width:100%;max-height:calc(94dvh/var(--z));border-radius:28px 28px 0 0;padding:10px 18px 0;gap:12px;animation:sheetup .34s cubic-bezier(.2,.8,.2,1)}
  .modal .sheet::before{content:"";justify-self:center;width:38px;height:4px;border-radius:4px;background:rgba(255,255,255,.2);margin-bottom:4px}
  .modal .sheet h2{font-size:22px}
  .modal .modal-actions{margin:4px -18px 0;padding:12px 18px calc(14px + env(safe-area-inset-bottom))}
  .modal .modal-actions .btn{flex:1}
  .modal .quick{gap:8px}
  .modal .qp .hintline{font-size:11.5px;line-height:1.4}
  .modal .qa .btn{height:40px}
  .modal .qor{display:none}
  .modal .quick>label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .modal .sheet{gap:10px}
  .modal .sheet label span,.fl-t{margin-bottom:5px}
  .modal .sheet input,.modal .sheet select,.modal .sheet textarea{font-size:16px;padding:11px 14px}
  .modal .sheet textarea{min-height:46px}
  .pc{height:44px}
}
@keyframes sheetup{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}

.rhythm{position:relative;margin:56px var(--pad) 0}
.rh-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:26px}
.rh-head h5{font-size:13px;font-weight:400;color:var(--muted)}
.rh-head p{font-family:var(--disp);font-weight:200;font-size:clamp(20px,2.4vw,30px);letter-spacing:-.03em;margin-top:6px}
.rh-add{flex:none;height:38px;padding:0 18px;border-radius:99px;font-size:13px;color:var(--soft);box-shadow:inset 0 0 0 1px var(--ring);transition:background-color .2s ease,color .2s ease}
.rh-add:hover{background:rgba(255,255,255,.07);color:var(--text)}
.rh-main{display:grid;grid-template-columns:minmax(250px,330px) minmax(0,1fr);gap:44px;align-items:center}
.rh-dial{position:relative;aspect-ratio:1;width:100%}
.dial{display:block;width:100%;height:100%;overflow:visible}
.dial .trk{fill:none;stroke:rgba(255,255,255,.055);stroke-width:10}
.dial .trk.thin{stroke-width:1;stroke:rgba(255,255,255,.1)}
.dial line{stroke:rgba(255,255,255,.16);stroke-width:1}
.dial line.mj{stroke:rgba(255,255,255,.42)}
.dial text{fill:var(--dim);font-size:9px;text-anchor:middle;font-variant-numeric:tabular-nums}
.dial .arc{fill:none;stroke:#f2efe9;stroke-width:10;stroke-linecap:round;cursor:pointer;transition:stroke-width .2s ease,filter .2s ease}
.dial .arc:hover{stroke-width:13;filter:brightness(1.3)}
.dial .tk{fill:var(--pc,#f2efe9);stroke:#000;stroke-width:1.5;cursor:default}
.dial .tk.late{fill:var(--red)}
.dial .tk.done{fill:#55524c}
.dial .hand line{stroke:#f2efe9;stroke-width:1.2;stroke-opacity:1}
.dial .hand circle{fill:#fff;filter:drop-shadow(0 0 4px rgba(255,255,255,.8))}
.rh-core{position:absolute;inset:26%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}
.rh-core strong{font-family:var(--disp);font-weight:100;font-size:clamp(30px,3.6vw,46px);letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:1}
.rh-core span{font-size:12px;margin-top:8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rh-core em{font-style:normal;font-size:11px;color:var(--muted);margin-top:3px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wk{--hh:19px;display:grid;grid-template-columns:28px repeat(7,minmax(0,1fr));gap:6px}
.wk .col,.wk .ax{display:grid;grid-template-rows:auto auto 1fr;justify-items:center;min-width:0}
.wk b{font-size:12px;font-weight:400;color:var(--muted)}
.wk .col.today b{color:var(--text)}
.wk small{font-size:11px;color:var(--dim);margin:2px 0 8px}
.wk .col.today small{color:var(--soft)}
.wtr{position:relative;width:100%;height:calc(var(--hrs)*var(--hh))}
.col .wtr{border-radius:14px;background:rgba(255,255,255,.035);overflow:hidden}
.col.today .wtr{background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(242,239,233,.2)}
.ax .wtr{width:100%}
.ax span{position:absolute;right:0;font-size:10px;color:var(--dim);transform:translateY(-50%);font-variant-numeric:tabular-nums}
.bar{position:absolute;padding:3px 5px;border-radius:9px;background:rgba(242,239,233,calc(var(--t)*.3));color:#f2efe9;font-size:10px;text-align:left;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(242,239,233,calc(var(--t)*.8));transition:background-color .2s ease}
.bar:hover{background:rgba(242,239,233,calc(var(--t)*.5))}
.bar span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nowl{position:absolute;left:0;right:0;height:1px;background:var(--text);box-shadow:0 0 8px rgba(242,239,233,.7);pointer-events:none}
.nowl::before{content:"";position:absolute;left:0;top:-2px;width:5px;height:5px;border-radius:50%;background:#fff}
.rh-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}
.rc{display:inline-flex;align-items:center;gap:9px;height:38px;padding:0 15px;border-radius:99px;font-size:13px;color:var(--soft);box-shadow:inset 0 0 0 1px var(--ring);transition:background-color .2s ease,color .2s ease}
.rc i{width:8px;height:8px;border-radius:50%;background:#f2efe9;flex:none}
.rc b{font-weight:400;color:var(--text);font-variant-numeric:tabular-nums}
.rc em{font-style:normal;color:var(--muted);font-size:12px}
.rc:hover{background:rgba(255,255,255,.06);color:var(--text)}
.rc.add{color:var(--muted)}
.rh-empty p{max-width:540px;color:var(--soft);font-size:14px;line-height:1.6}
.rps{display:flex;flex-wrap:wrap;gap:10px}
.rh-empty .rps{margin-top:20px}
.rp{display:grid;gap:3px;text-align:left;padding:14px 18px;border-radius:18px;box-shadow:inset 0 0 0 1px var(--ring);background:rgba(255,255,255,.02);transition:background-color .2s ease,transform .2s ease}
.rp:hover{background:rgba(255,255,255,.07);transform:translateY(-2px)}
.rp b{font-weight:400;font-size:14px}
.rp span{font-size:12px;color:var(--muted)}
.rp.small{display:inline-flex;padding:8px 14px;border-radius:99px;font-size:12px;color:var(--soft)}
.rh-actions{margin-top:18px}
.pb{position:absolute;left:0;right:0;top:44px;height:16px;pointer-events:none}
.rb{position:absolute;display:block;height:14px;border-radius:8px;background:rgba(242,239,233,calc(var(--t)*.28));box-shadow:inset 0 0 0 1px rgba(242,239,233,calc(var(--t)*.7));pointer-events:auto;overflow:hidden;font-style:normal}
.rb span{display:block;padding:0 7px;font-size:9px;line-height:14px;white-space:nowrap;color:var(--text)}
.dchips{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.dch{height:40px;border-radius:12px;font-size:13px;color:var(--soft);background:var(--s2);box-shadow:inset 0 0 0 1px var(--ring);transition:background-color .15s ease,color .15s ease}
.dch:hover{color:var(--text)}
.dch.on{background:var(--text);color:#000;font-weight:500}
.dpre{display:flex;gap:16px;margin-top:8px}
.dpre button{font-size:12px;color:var(--muted);transition:color .15s ease}
.dpre button:hover{color:var(--text)}
.tsel{display:flex;align-items:center;gap:6px}
.tsel b{color:var(--muted);font-weight:300}
.tsel select{padding-right:30px}
.rdur{font-size:12px;color:var(--muted)}
.rdur.bad{color:#c9a66b}
#rmodal .rps{gap:8px}
#rmodal .modal-actions .btn{flex:0 0 auto}
.btn.danger{margin-right:auto;color:var(--muted)}
.btn.danger:hover{color:var(--text)}
@media (max-width:1000px){
  .rh-main{grid-template-columns:1fr;gap:32px}
  .rh-dial{max-width:320px;margin:0 auto}
}
@media (max-width:640px){
  .rhythm{margin-top:44px}
  .wk{--hh:15px;gap:4px;grid-template-columns:24px repeat(7,minmax(0,1fr))}
  .bar{padding:2px 3px;font-size:9px;border-radius:7px}
  .rh-head{align-items:center}
  .rh-add{height:36px;padding:0 14px}
  #rmodal .modal-actions .btn{flex:1;padding:0 10px}
}

.lv-ghost{right:calc(var(--pad)*.4 + .08em)}
@media (max-width:760px){
  .lv-ghost{font-size:54vw;right:calc(5vw + .08em);top:56px}
}
