:root{
  --scrim:rgba(18,24,38,.38);
  --tile-filter:saturate(.3) brightness(1.03) contrast(.92);
  --rail:220px;
  --topbar:56px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --scrim:rgba(0,0,0,.62);
    --tile-filter:invert(1) hue-rotate(180deg) saturate(.3) brightness(.8) contrast(.9);
  }
}
:root[data-theme="dark"]{
  --scrim:rgba(0,0,0,.62);
  --tile-filter:invert(1) hue-rotate(180deg) saturate(.3) brightness(.8) contrast(.9);
}

body{font-size:.875rem;line-height:1.5;overflow-x:clip;}
#app{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);grid-template-rows:var(--topbar) minmax(0,1fr);min-height:100vh;}

.top{grid-column:1/-1;display:flex;align-items:center;gap:14px;padding:0 20px 0 0;background:var(--sheet);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:600;}
.brand{width:var(--rail);flex:none;padding-left:24px;display:flex;align-items:baseline;gap:8px;}
.brand b{font-family:var(--display);font-size:1.375rem;font-weight:700;letter-spacing:-.025em;line-height:1;}
.brand span{font-size:var(--t-micro);color:var(--ink-3);}
.co{display:flex;flex-direction:column;line-height:1.25;min-width:0;}
.co strong{font-weight:600;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.co span{font-size:var(--t-micro);color:var(--ink-3);}
.top .sp{flex:1;}
.hint{font-size:var(--t-micro);color:var(--ink-3);max-width:250px;text-align:right;line-height:1.35;margin:0;}
.applink{font-weight:600;color:var(--royal);white-space:nowrap;font-size:.8125rem;padding:6px 4px;display:inline-flex;align-items:center;gap:6px;}
.applink .ico{width:17px;height:17px;}
.applink:hover{text-decoration:underline;text-underline-offset:3px;}
.tbtn{height:34px;padding:0 12px;border-radius:var(--r-xs);border:1px solid var(--rule-2);display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--ink-2);background:var(--sheet);white-space:nowrap;transition:border-color .15s,color .15s,background-color .15s;}
.tbtn:hover{border-color:var(--ink-3);color:var(--ink);}
.tbtn.icon{width:34px;padding:0;justify-content:center;}
.tbtn.warn{border-color:var(--absent);color:var(--absent-ink);background:var(--absent-wash);}
.tbtn .ico{width:17px;height:17px;}

.rail{position:sticky;top:var(--topbar);align-self:start;height:calc(100vh - var(--topbar));padding:18px 12px;border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:2px;}
.rail a{display:flex;align-items:center;gap:12px;height:40px;padding:0 12px;border-radius:var(--r-s);color:var(--ink-2);font-weight:500;transition:background-color .15s,color .15s;}
.rail a:hover{background:var(--sheet);color:var(--ink);}
.rail a[aria-current="page"]{background:var(--royal-wash);color:var(--royal-ink);font-weight:600;}
.rail .ico{width:20px;height:20px;}
.badge{margin-left:auto;min-width:22px;height:20px;padding:0 6px;border-radius:var(--r-pill);background:var(--royal);color:var(--on-royal);font-size:.72rem;font-weight:700;display:inline-grid;place-items:center;font-variant-numeric:tabular-nums;}
.rail .foot{margin-top:auto;padding:14px 12px 4px;font-size:var(--t-micro);color:var(--ink-3);border-top:1px solid var(--rule);line-height:1.5;}
.rail .foot b{display:block;color:var(--ink-2);font-weight:600;font-size:.8125rem;}

main{min-width:0;padding:30px 40px 72px;view-transition-name:main;}
.page{max-width:1180px;}
.kick{font-size:var(--t-small);color:var(--ink-3);margin:0 0 6px;}
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;margin-bottom:24px;}
.head .h1{max-width:760px;}
.h1 .dim{color:var(--ink-3);font-weight:500;}
.c-late{color:var(--late-ink);}
.c-absent{color:var(--absent-ink);}
.c-present{color:var(--present-ink);}
.lede{margin:8px 0 0;color:var(--ink-2);max-width:640px;}
.mut{color:var(--ink-3);}
.nw{white-space:nowrap;}
.sec-h{display:flex;align-items:baseline;gap:10px;margin:0 0 10px;}
.sec-h h2{font-family:var(--display);font-size:var(--t-h2);font-weight:600;margin:0;letter-spacing:-.006em;}
.sec-h .meta{margin:0;}

.seg{display:inline-flex;padding:3px;background:var(--sunk);border-radius:var(--r-s);gap:2px;max-width:100%;overflow-x:auto;scrollbar-width:none;}
.seg button{height:32px;padding:0 12px;border-radius:var(--r-xs);font-size:.8125rem;color:var(--ink-2);white-space:nowrap;transition:background-color .15s,color .15s;}
.seg button:hover{color:var(--ink);}
.seg button[aria-pressed="true"]{background:var(--sheet);color:var(--royal-ink);font-weight:600;box-shadow:var(--sh-s);}
.seg .n{margin-left:5px;color:var(--ink-3);font-variant-numeric:tabular-nums;font-weight:500;}

.card{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r-m);}
.tw{overflow-x:auto;position:relative;}
table.t{width:100%;border-collapse:collapse;font-size:.875rem;}
.t th{text-align:left;font-weight:500;font-size:var(--t-micro);color:var(--ink-3);height:36px;padding:0 14px;border-bottom:1px solid var(--rule);white-space:nowrap;}
.t td{height:40px;padding:0 14px;border-bottom:1px solid var(--rule);white-space:nowrap;vertical-align:middle;}
.t tbody tr:last-child td{border-bottom:0;}
.t tr.row{cursor:pointer;}
.t tr.row:hover td{background:var(--sheet-2);}
.t tr.row:focus-visible{outline:2px solid var(--royal);outline-offset:-2px;}
.t tr.grp td{height:34px;background:var(--sheet-2);font-size:var(--t-micro);color:var(--ink-2);font-weight:600;letter-spacing:.01em;}
.t tr.grp td .mut{font-weight:500;margin-left:6px;}
.t td.r,.t th.r{text-align:right;}
.t td.wrap{white-space:normal;min-width:140px;line-height:1.4;padding-top:6px;padding-bottom:6px;}
.nm b{font-weight:600;}
.nm .role{color:var(--ink-3);font-size:var(--t-small);margin-left:8px;}
.src{color:var(--ink-3);font-size:var(--t-small);margin-left:6px;}
.pend{display:inline-flex;align-items:center;gap:5px;color:var(--late-ink);font-size:var(--t-micro);margin-left:8px;}
.pend::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--late-dot);}
.hl{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-small);}
.hl .ico{width:15px;height:15px;}
.hl.ok{color:var(--ink-3);}
.hl.bad{color:var(--late-ink);font-weight:500;}
.sub{font-size:var(--t-small);color:var(--ink-3);margin-left:8px;}
.tag.wait{background:transparent;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--rule-2);}
.tag.wait::before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--ink-3);}
.tag.note{background:var(--sunk);color:var(--ink-2);}
.tag.note::before{display:none;}
.tag.absent::before{border-radius:1.5px;}
.tag+.tag{margin-left:6px;}

@keyframes fresh{from{background:var(--royal-wash);}to{background:transparent;}}
tr.fresh td{animation:fresh 2.4s var(--ease) both;}
.fresh-in{animation:freshin .5s var(--ease-out) both, fresh 2.4s var(--ease) both;}
@keyframes freshin{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}

.att{margin:0 0 32px;}
.att ul{list-style:none;margin:0;padding:0;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r-m);}
.att li{display:grid;grid-template-columns:118px minmax(0,1fr) auto;align-items:center;gap:14px;padding:11px 16px;border-bottom:1px solid var(--rule);min-height:56px;}
.enter .att li,.enter .req{animation:freshin .32s var(--ease-out) both;animation-delay:calc(var(--i,0) * 40ms);}
.att li:last-child{border-bottom:0;}
.att .txt{min-width:0;}
.att .txt b{font-weight:600;}
.att .txt .role{color:var(--ink-3);font-size:var(--t-small);margin-left:6px;}
.att .txt p{margin:1px 0 0;color:var(--ink-2);font-size:var(--t-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.att .calm{padding:18px 16px;color:var(--ink-2);display:flex;gap:10px;align-items:center;}
.att .calm .ico{color:var(--ink-3);}

.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px;}
.toolbar .sp{flex:1;}

.btn.sm{min-height:36px;padding:0 14px;font-size:.8125rem;border-radius:var(--r-s);}
.btn.line:hover{border-color:var(--ink-3);}
.btn.quiet:hover{background:var(--royal-wash-2);}
.btn[disabled]{opacity:.45;cursor:not-allowed;}
.btn .ico{width:17px;height:17px;}

dialog{color:var(--ink);}
dialog::backdrop{background:var(--scrim);transition:background-color .26s var(--ease),overlay .26s allow-discrete,display .26s allow-discrete;}
@starting-style{dialog[open]::backdrop{background:transparent;}}
dialog.modal{border:0;padding:0;border-radius:var(--r-l);background:var(--sheet);box-shadow:var(--sh-l);width:min(500px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;opacity:1;transform:none;transition:opacity .24s var(--ease-out),transform .3s var(--ease-out),overlay .3s allow-discrete,display .3s allow-discrete;}
dialog.modal:not([open]){opacity:0;transform:translateY(14px) scale(.985);}
@starting-style{dialog.modal[open]{opacity:0;transform:translateY(14px) scale(.985);}}
dialog.drawer{border:0;padding:0;margin:0 0 0 auto;height:100dvh;max-height:100dvh;width:min(440px,100vw);border-radius:var(--r-xl) 0 0 var(--r-xl);background:var(--sheet);box-shadow:var(--sh-l);overflow:auto;transform:none;transition:transform .32s var(--ease-out),opacity .2s,overlay .32s allow-discrete,display .32s allow-discrete;}
dialog.drawer:not([open]){transform:translateX(40px);opacity:0;}
@starting-style{dialog.drawer[open]{transform:translateX(40px);opacity:0;}}

.dlg-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 24px 6px;}
.dlg-b{padding:8px 24px 24px;}
.dw-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:24px 24px 14px;}
.dw-h .meta{margin-top:4px;}
.dw-map{height:220px;margin:0 24px;border-radius:var(--r-s);overflow:hidden;border:1px solid var(--rule);}
.maplegend{margin:8px 24px 0;font-size:var(--t-micro);color:var(--ink-3);display:flex;gap:14px;flex-wrap:wrap;}
.maplegend i{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:-1px;margin-right:5px;}
.maplegend i.f{border:1.5px solid var(--fence);background:var(--fence-fill);}
.maplegend i.p{background:var(--ink);}
.facts{margin:16px 24px 0;display:grid;grid-template-columns:118px minmax(0,1fr);}
.facts dt,.facts dd{margin:0;padding:10px 0;border-bottom:1px solid var(--rule);}
.facts dt{color:var(--ink-3);font-size:var(--t-small);padding-top:11px;}
.facts dd{font-variant-numeric:tabular-nums;}
.facts dd small{display:block;color:var(--ink-3);font-size:var(--t-micro);}
.dw-block{margin:18px 24px 0;padding:14px 16px;border-radius:var(--r-s);background:var(--sheet-2);border:1px solid var(--rule);}
.dw-block h3{margin:0 0 4px;font-family:var(--display);font-size:1rem;font-weight:600;}
.dw-block p{margin:0 0 10px;color:var(--ink-2);font-size:var(--t-small);}
.dw-block.flag{background:var(--late-wash);border-color:transparent;}
.dw-block.flag h3,.dw-block.flag p{color:var(--late-ink);}
.dw-foot{padding:20px 24px 28px;}
.row-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}

.mini{height:170px;border-radius:var(--r-s);overflow:hidden;border:1px solid var(--rule);}
.mini,.dw-map,.smap{position:relative;z-index:0;isolation:isolate;}
.leaflet-container{font-family:var(--body);background:var(--sunk);}
.leaflet-tile-pane{filter:var(--tile-filter);}
.leaflet-control-attribution{font-size:10px!important;background:color-mix(in srgb,var(--sheet) 80%,transparent)!important;color:var(--ink-3)!important;}
.leaflet-control-attribution a{color:var(--ink-2)!important;}
.leaflet-bar a{background:var(--sheet)!important;color:var(--ink)!important;border-color:var(--rule)!important;}
.leaflet-tooltip.ftip{background:var(--sheet);color:var(--ink);border:1px solid var(--rule-2);box-shadow:var(--sh-s);font-family:var(--body);font-size:12px;font-weight:600;padding:2px 8px;border-radius:var(--r-xs);}
.leaflet-tooltip-top.ftip::before{border-top-color:var(--rule-2);}
.cpin{border-radius:50%;background:var(--royal);border:3px solid var(--sheet);box-shadow:var(--sh-m);cursor:grab;}
.cpin:active{cursor:grabbing;}

.reqs{display:flex;flex-direction:column;gap:14px;margin-bottom:36px;}
.req.fresh-in{animation:freshin .5s var(--ease-out) both, fresh 2.4s var(--ease) both;}
.req{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:20px;padding:18px 20px;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r-l);}
.req .who{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:0;}
.req .who b{font-family:var(--display);font-size:1.0625rem;font-weight:600;}
.req .who span{color:var(--ink-3);font-size:var(--t-small);}
.req .kind{display:flex;gap:8px;align-items:center;margin:2px 0 12px;color:var(--ink-2);font-size:var(--t-small);}
.req .kind .ico{width:16px;height:16px;color:var(--ink-3);}
.want{display:flex;gap:6px 22px;flex-wrap:wrap;margin:0 0 12px;}
.want div{display:flex;flex-direction:column;}
.want small{font-size:var(--t-micro);color:var(--ink-3);}
.want strong{font-family:var(--display);font-size:1.25rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1.3;}
.want strong.c-late{color:var(--late-ink);}
blockquote.why{margin:0 0 14px;padding:2px 0 2px 14px;border-left:2px solid var(--rule-2);color:var(--ink);font-size:.9375rem;line-height:1.6;max-width:62ch;}
blockquote.why cite{display:block;font-style:normal;color:var(--ink-3);font-size:var(--t-micro);margin-top:4px;}
.mapcap{font-size:var(--t-micro);color:var(--ink-3);margin:6px 0 0;}
.rej{margin-top:12px;display:none;}
.rej.open{display:block;animation:freshin .22s var(--ease-out) both;}
.rej label{display:block;font-size:var(--t-small);color:var(--ink-2);margin-bottom:6px;}
.rej textarea{width:100%;min-height:68px;resize:vertical;padding:10px 12px;border-radius:var(--r-s);border:1px solid var(--rule-2);background:var(--sheet);margin-bottom:8px;line-height:1.5;}
.rej textarea:focus{outline:none;border-color:var(--royal);box-shadow:0 0 0 3px var(--royal-wash);}
.whynot{font-size:var(--t-micro);color:var(--ink-3);}
.ghost{border-radius:var(--r-l);box-shadow:var(--sh-l);}

.fld{display:flex;flex-direction:column;gap:6px;margin:0 0 16px;}
.fld>span,.fld>label{font-size:var(--t-small);color:var(--ink-2);font-weight:500;}
.inp,.fld input:not([type=range]):not([type=checkbox]):not([type=radio]),.fld select{height:40px;padding:0 12px;border-radius:var(--r-s);border:1px solid var(--rule-2);background:var(--sheet);width:100%;transition:border-color .15s,box-shadow .15s;}
.inp:focus,.fld input:focus,.fld select:focus{outline:none;border-color:var(--royal);box-shadow:0 0 0 3px var(--royal-wash);}
.fld .help{font-size:var(--t-micro);color:var(--ink-3);margin:0;}
.err{font-size:var(--t-small);color:var(--absent-ink);margin:4px 0 0;display:flex;gap:6px;align-items:flex-start;}
.err .ico{width:16px;height:16px;margin-top:2px;}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px;}

.code{font-family:var(--display);font-size:2.375rem;font-weight:600;letter-spacing:.14em;font-variant-numeric:tabular-nums;margin:6px 0 2px;}
.sms{margin:14px 0 0;padding:12px 14px;border-radius:var(--r-s);background:var(--sheet-2);border:1px solid var(--rule);font-size:var(--t-small);color:var(--ink-2);line-height:1.6;}
.sms small{display:block;color:var(--ink-3);font-size:var(--t-micro);margin-bottom:4px;}

.sites{display:grid;grid-template-columns:330px minmax(0,1fr);gap:0;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r-l);overflow:hidden;min-height:560px;}
.spanel{border-right:1px solid var(--rule);overflow:auto;max-height:calc(100vh - 210px);}
.smap{height:calc(100vh - 210px);min-height:560px;}
.smap.placing{cursor:crosshair;}
.smap.placing .leaflet-interactive{cursor:crosshair;}
.slist{list-style:none;margin:0;padding:0;}
.sitem{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;padding:14px 18px;border-bottom:1px solid var(--rule);transition:background-color .15s;}
.sitem:hover{background:var(--sheet-2);}
.sitem .sn{font-weight:600;font-size:.9375rem;}
.sitem .sa{color:var(--ink-3);font-size:var(--t-small);}
.sitem .sm{margin-top:6px;font-size:var(--t-small);color:var(--ink-2);font-variant-numeric:tabular-nums;}
.sitem .sm .strong{color:var(--ink);font-weight:600;}
.placebar{position:absolute;left:50%;top:14px;transform:translateX(-50%);z-index:800;display:flex;gap:10px;align-items:center;padding:8px 8px 8px 16px;border-radius:var(--r-pill);background:var(--ink);color:var(--paper);box-shadow:var(--sh-l);font-size:var(--t-small);white-space:nowrap;}
.placebar button{height:30px;padding:0 12px;border-radius:var(--r-pill);background:var(--paper);color:var(--ink);font-size:var(--t-small);font-weight:600;}
.ed{padding:16px 18px 22px;}
.back{display:inline-flex;align-items:center;gap:4px;color:var(--ink-2);font-size:var(--t-small);margin:0 0 10px -4px;padding:4px;}
.back:hover{color:var(--ink);}
.ed .h2{margin-bottom:14px;}
.rad{display:flex;align-items:center;gap:12px;}
.rad input[type=range]{flex:1;accent-color:var(--royal);}
.rad .rn{display:flex;align-items:center;gap:6px;color:var(--ink-3);font-size:var(--t-small);}
.rad .rn input{width:78px!important;text-align:right;font-variant-numeric:tabular-nums;}
.wl{list-style:none;margin:0 0 8px;padding:0;border:1px solid var(--rule);border-radius:var(--r-s);}
.wl li{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 12px;border-bottom:1px solid var(--rule);}
.wl li:last-child{border-bottom:0;}
.wl li .ico{width:16px;height:16px;color:var(--ink-3);}
.wl li span{flex:1;min-width:0;}
.wl li small{display:block;color:var(--ink-3);font-size:var(--t-micro);font-family:ui-monospace,monospace;}
.wl .empty{color:var(--ink-3);font-size:var(--t-small);}
.xbtn{width:30px;height:30px;border-radius:var(--r-xs);display:grid;place-items:center;color:var(--ink-3);}
.xbtn:hover{background:var(--absent-wash);color:var(--absent-ink);}
.xbtn .ico{width:16px;height:16px;}
.wadd{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.wadd .btn{grid-column:1/-1;}
.linkbtn{color:var(--royal);font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.conf{display:flex;gap:8px;align-items:flex-start;margin:4px 0 14px;padding:10px 12px;border-radius:var(--r-s);background:var(--sheet-2);font-size:var(--t-small);}
.conf .ico{width:17px;height:17px;margin-top:2px;}
.conf.strong .ico{color:var(--ink);}
.conf.normal .ico{color:var(--ink-3);}
.edacts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--rule);}

.legend{display:flex;gap:6px 16px;flex-wrap:wrap;align-items:center;font-size:var(--t-small);color:var(--ink-2);}
.legend span{display:inline-flex;align-items:center;gap:6px;}
.lc{font-style:normal;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:var(--r-xs);font-family:var(--display);font-weight:600;font-size:.8125rem;}
.gwrap{overflow:auto;max-height:calc(100vh - 290px);min-height:300px;border:1px solid var(--rule);border-radius:var(--r-m);background:var(--sheet);overscroll-behavior:contain;}
table.g{border-collapse:separate;border-spacing:0;font-size:.8125rem;}
.g th,.g td{height:36px;min-width:31px;padding:0;text-align:center;border-bottom:1px solid var(--rule);border-right:1px solid var(--rule);font-variant-numeric:tabular-nums;}
.g thead th{position:sticky;top:0;z-index:2;background:var(--sheet);height:46px;font-weight:600;color:var(--ink-2);line-height:1.1;}
.g thead th small{display:block;font-weight:400;font-size:10.5px;color:var(--ink-3);margin-top:2px;}
.g thead th.wk{color:var(--ink-3);}
.g thead th.today{color:var(--royal-ink);box-shadow:inset 0 -2px 0 var(--royal);}
.g .nmc{position:sticky;left:0;z-index:1;background:var(--sheet);text-align:left;min-width:190px;max-width:190px;padding:0 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:1px 0 0 var(--rule-2);}
.g .nmc small{color:var(--ink-3);margin-left:6px;}
.g thead .nmc{z-index:3;}
.g td.c{font-family:var(--display);font-weight:600;position:relative;}
.g td.fut{background:var(--sheet-2);}
.g td.edited::after{content:"";position:absolute;top:0;right:0;border-style:solid;border-width:0 7px 7px 0;border-color:transparent var(--ink-3) transparent transparent;}
.g .tot{min-width:68px;padding:0 10px;text-align:right;font-weight:600;}
.g thead .tot{font-size:var(--t-micro);text-align:right;padding:0 10px;}
.g .tot.first{border-left:1px solid var(--rule-2);}
.g .tot.ded{color:var(--absent-ink);}
.g tbody tr:hover td:not(.c):not(.fut),.g tbody tr:hover th{background:var(--sheet-2);}
.s-present{background:var(--present-wash);color:var(--present-ink);}
.s-late{background:var(--late-wash);color:var(--late-ink);}
.s-absent{background:var(--absent-wash);color:var(--absent-ink);}
.s-leave{background:var(--leave-wash);color:var(--leave);}
.s-off{background:var(--off-wash);color:var(--off);}
.s-holiday{background:var(--sunk);color:var(--ink-2);}
.ruleline{margin:12px 0 0;font-size:var(--t-small);color:var(--ink-2);}
.ruleline a{color:var(--royal);font-weight:600;}

.set{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px 36px;padding:26px 0;border-top:1px solid var(--rule);}
.set:first-of-type{border-top:0;padding-top:4px;}
.set .lab h2{font-family:var(--display);font-size:var(--t-h2);font-weight:600;margin:0 0 4px;}
.set .lab p{margin:0;color:var(--ink-3);font-size:var(--t-small);}
.shedit td{background:var(--sheet-2);white-space:normal;padding:16px 14px;height:auto;}
.shgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr .8fr;gap:12px;}
.shgrid .fld{margin:0;}
.clk{font-size:var(--t-micro);color:var(--ink-3);}
.night{margin:12px 0 0;display:flex;gap:8px;align-items:flex-start;font-size:var(--t-small);color:var(--ink-2);}
.night .ico{width:17px;height:17px;margin-top:1px;}
.chips{display:flex;gap:8px;flex-wrap:wrap;}
.chip{height:36px;padding:0 14px;border-radius:var(--r-pill);border:1px solid var(--rule-2);background:var(--sheet);color:var(--ink-2);font-size:.8125rem;display:inline-flex;align-items:center;gap:6px;transition:background-color .15s,border-color .15s,color .15s;}
.chip .ico{width:15px;height:15px;display:none;}
.chip[aria-pressed="true"]{background:var(--royal-wash);border-color:var(--royal);color:var(--royal-ink);font-weight:600;}
.chip[aria-pressed="true"] .ico{display:block;}
.hlist{list-style:none;margin:0 0 10px;padding:0;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r-s);}
.hlist li{display:flex;align-items:center;gap:14px;padding:6px 8px 6px 14px;border-bottom:1px solid var(--rule);min-height:44px;}
.hlist li:last-child{border-bottom:0;}
.hlist .d{width:170px;flex:none;font-variant-numeric:tabular-nums;color:var(--ink-2);font-size:var(--t-small);}
.hlist .n{flex:1;min-width:0;}
.hadd{display:grid;grid-template-columns:170px 1fr auto;gap:8px;}
.switch{display:flex;align-items:flex-start;gap:14px;cursor:pointer;}
.switch input{appearance:none;width:44px;height:26px;border-radius:var(--r-pill);background:var(--rule-2);position:relative;flex:none;cursor:pointer;transition:background-color .2s;margin:0;}
.switch input::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--sheet);box-shadow:var(--sh-s);transition:transform .22s var(--ease-out);}
.switch input:checked{background:var(--royal);}
.switch input:checked::after{transform:translateX(18px);}
.switch b{display:block;font-weight:600;}
.switch small{display:block;color:var(--ink-3);font-size:var(--t-small);}
.policy{display:inline-block;margin-top:4px;padding:1px 8px;border-radius:var(--r-xs);background:var(--sunk);color:var(--ink);font-size:var(--t-micro);font-weight:600;}
.nrule{display:flex;align-items:center;gap:8px;margin-top:14px;color:var(--ink-2);flex-wrap:wrap;}
.nrule input{width:64px;height:36px;text-align:center;border-radius:var(--r-xs);border:1px solid var(--rule-2);background:var(--sheet);font-variant-numeric:tabular-nums;}
.radios{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:var(--r-s);background:var(--sheet);}
.radios label{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-bottom:1px solid var(--rule);cursor:pointer;}
.radios label:last-child{border-bottom:0;}
.radios input{accent-color:var(--royal);margin-top:4px;width:16px;height:16px;}
.radios b{display:block;font-weight:600;}
.radios small{color:var(--ink-3);font-size:var(--t-small);}
.savebar{position:sticky;bottom:16px;z-index:50;margin-top:24px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 10px 10px 18px;border-radius:var(--r-m);background:var(--ink);color:var(--paper);box-shadow:var(--sh-l);animation:freshin .26s var(--ease-out) both;}
.savebar p{margin:0;flex:1;min-width:200px;font-size:var(--t-small);}
.savebar .btn.line{background:transparent;color:var(--paper);border-color:color-mix(in srgb,var(--paper) 40%,transparent);}
.savebar .btn.primary{background:var(--paper);color:var(--ink);box-shadow:none;}

.search{position:relative;}
.search .ico{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--ink-3);pointer-events:none;}
.search input{padding-left:34px!important;width:240px!important;}

#toasts{position:fixed;left:20px;bottom:20px;z-index:2000;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:min(420px,calc(100vw - 40px));}
.toast{background:var(--ink);color:var(--paper);padding:11px 16px;border-radius:var(--r-s);box-shadow:var(--sh-l);font-size:var(--t-small);line-height:1.45;animation:toastin .32s var(--ease-out) both;}
.toast b{font-weight:600;}
.toast.out{animation:toastout .26s var(--ease) both;}
@keyframes toastin{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@keyframes toastout{to{opacity:0;transform:translateY(6px);}}

::view-transition-old(main){animation:vtout .16s var(--ease) both;}
::view-transition-new(main){animation:vtin .28s var(--ease-out) both;}
@keyframes vtout{to{opacity:0;}}
@keyframes vtin{from{opacity:0;transform:translateY(8px);}}

@media (max-width:1180px){
  .opt2{display:none;}
  .t .role{display:none;}
  .set{grid-template-columns:1fr;gap:14px;}
  .set .lab p{max-width:560px;}
}
@media (max-width:1180px) and (min-width:900px){
  .shgrid{grid-template-columns:1.4fr 1fr 1fr .8fr;}
}
@media (max-width:1100px){
  main{padding:26px 28px 64px;}
  .req{grid-template-columns:minmax(0,1fr) 220px;}
}
@media (max-width:899px){
  #app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr;}
  .top{position:static;flex-wrap:wrap;padding:12px 16px;gap:8px 10px;}
  .brand{width:auto;padding:0;order:1;margin-right:auto;}
  #logout{order:2;}
  #theme{order:3;}
  .co{order:4;flex:1 1 55%;min-width:0;}
  .g .nmc{min-width:128px;max-width:128px;}
  .g .nmc small{display:none;}
  .co span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .applink{order:5;}
  .hint{order:6;flex:1 1 100%;max-width:none;text-align:left;}
  .top .sp{display:none;}
  .rail{position:sticky;top:0;z-index:600;height:auto;flex-direction:row;overflow-x:auto;padding:8px 16px;border-right:0;border-bottom:1px solid var(--rule);background:var(--paper);scrollbar-width:none;gap:4px;}
  .rail::-webkit-scrollbar{display:none;}
  .rail a{flex:none;height:38px;}
  .rail .foot{display:none;}
  main{padding:20px 16px 56px;}
  .opt{display:none;}
  .att li{grid-template-columns:minmax(0,1fr) auto;}
  .att li .tg{grid-column:1/-1;}
  .req{grid-template-columns:1fr;padding:16px;}
  .sites{grid-template-columns:1fr;}
  .spanel{border-right:0;border-top:1px solid var(--rule);max-height:none;order:2;}
  .smap{height:340px;min-height:340px;}
  .set{grid-template-columns:1fr;gap:12px;}
  .shgrid{grid-template-columns:1fr 1fr;}
  .hadd{grid-template-columns:1fr 1fr;}
  .hadd .btn{grid-column:1/-1;}
  .hlist .d{width:auto;}
  .hlist li{flex-wrap:wrap;gap:4px 14px;}
  .search input{width:100%!important;}
  .search{flex:1;}
  .gwrap{max-height:70vh;}
  .wadd{grid-template-columns:1fr 1fr;}
  .wadd .btn{grid-column:1/-1;}
}
@media (max-width:520px){
  .top .tbtn span{display:none;}
  .top .tbtn{width:34px;padding:0;justify-content:center;}
  .two{grid-template-columns:1fr;}
  .h1{font-size:1.3125rem;}
}
@media (prefers-reduced-motion:reduce){
  ::view-transition-old(main),::view-transition-new(main){animation:none;}
}

[hidden]{display:none!important;}
#auth{min-height:100vh;display:grid;place-items:center;padding:32px 16px;}
.auth-card{width:min(420px,100%);background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r-l);box-shadow:var(--sh-m);padding:28px 24px 22px;}
.auth-brand{display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-weight:700;font-size:1.25rem;color:var(--royal);letter-spacing:-.02em;margin-bottom:18px;}
.auth-card .h1{margin-bottom:6px;}
.auth-card .meta{margin-bottom:18px;}
.auth-seg{display:flex;margin:0 0 18px;}
.auth-seg button{flex:1;}
.auth-card .btn.block{margin-top:4px;min-height:48px;}
.auth-card .fld input{height:46px;}
.auth-msg{margin:0 0 14px;padding:10px 12px;border-radius:var(--r-s);background:var(--royal-wash-2);color:var(--royal-ink);font-size:var(--t-small);}
.auth-foot{margin:14px 0 0;font-size:var(--t-small);color:var(--ink-3);text-align:center;}
.auth-foot a{color:var(--royal);font-weight:600;}
.loading{display:flex;align-items:center;gap:8px;padding:40px 0;}
.first{list-style:none;margin:0;padding:0;max-width:720px;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r-l);}
.first li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;padding:18px 20px;border-bottom:1px solid var(--rule);color:var(--ink-3);}
.first li:last-child{border-bottom:0;}
.first .fn{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-weight:600;background:var(--sunk);color:var(--ink-2);font-variant-numeric:tabular-nums;}
.first .fn .ico{width:18px;height:18px;}
.first b{display:block;font-family:var(--display);font-size:1.0625rem;font-weight:600;color:var(--ink-2);margin:3px 0 2px;}
.first p{margin:0 0 12px;font-size:var(--t-small);max-width:56ch;}
.first li.now{color:var(--ink-2);}
.first li.now b{color:var(--ink);}
.first li.now .fn{background:var(--royal);color:var(--on-royal);}
.first li.done .fn{background:var(--present-wash);color:var(--present-ink);}
.first li.done b{text-decoration:line-through;text-decoration-color:var(--rule-2);}
.nudge{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 24px;padding:12px 16px;border-radius:var(--r-m);background:var(--royal-wash-2);color:var(--royal-ink);}
.nudge p{margin:0;flex:1;min-width:220px;font-size:var(--t-small);}
.nudge .ico{width:20px;height:20px;}
.emptyc{padding:22px 20px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;}
.emptyc p{margin:0;color:var(--ink-2);max-width:60ch;}
.pcode{font-family:var(--display);font-weight:600;letter-spacing:.08em;margin-left:10px;color:var(--ink);}
.mini-btn{min-height:30px!important;margin-left:8px;padding:0 10px!important;}
.t td.r .tbtn{height:30px;width:30px;}
.selfie{display:block;width:96px;height:128px;object-fit:cover;border-radius:var(--r-xs);border:1px solid var(--rule);background:var(--sunk);margin:2px 0 4px;}
.selfrow{display:flex;align-items:flex-end;gap:12px;margin:0 0 14px;}
.dz{margin-top:22px;padding-top:16px;border-top:1px solid var(--rule);}
.dz h3{margin:14px 0 4px;font-family:var(--display);font-size:1rem;font-weight:600;}
.dz h3:first-child{margin-top:0;}
.dz p{margin:0 0 10px;color:var(--ink-2);font-size:var(--t-small);max-width:60ch;}
.danger-q{color:var(--absent-ink)!important;background:transparent!important;}
.danger-q:hover{background:var(--absent-wash)!important;}
.edacts .sp{flex:1;}
.mnav{display:inline-flex;align-items:center;gap:6px;padding:2px;border:1px solid var(--rule-2);border-radius:var(--r-s);background:var(--sheet);}
.mnav span{min-width:118px;text-align:center;font-weight:600;font-size:.8125rem;}
.mnav .tbtn{border:0;height:32px;width:32px;}
.mnav .tbtn[disabled]{opacity:.35;cursor:not-allowed;}
.placebar span{white-space:nowrap;}
@media (max-width:899px){
  .placebar{left:12px;right:12px;transform:none;white-space:normal;flex-wrap:wrap;border-radius:var(--r-m);}
  .placebar span{white-space:normal;flex:1 1 140px;}
  .first li{padding:16px;}
  .applink span{display:none;}
}
@media (max-width:520px){
  .t td.r{padding-right:8px;}
  .mnav span{min-width:96px;}
  .head .row-acts{width:100%;}
}
