:root{--bg: #f4f5f7;--card: #ffffff;--ink: #16181d;--muted: #6b7280;--line: #e5e7eb;--accent: #2f6fed;--danger: #d64545;--radius: 18px;--shadow: 0 1px 2px rgba(16, 18, 29, .06), 0 8px 24px rgba(16, 18, 29, .06);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button{font:inherit;color:inherit}.app{max-width:560px;margin:0 auto;min-height:100%;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:20;padding:calc(var(--safe-top) + 14px) 16px 12px;background:#f4f5f7e0;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line)}.header-top{display:flex;align-items:center;gap:10px}.header-title{flex:none;max-width:40%;min-width:0}.header-title h1{margin:0;font-size:17px;font-weight:650;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-title p{margin:1px 0 0;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar{width:40px;height:40px;border-radius:50%;background:#dfe3ea;border:none;cursor:pointer;display:grid;place-items:center;font-size:16px;font-weight:600;color:#4b5563;position:relative;flex:none}.avatar .dot{position:absolute;top:0;right:0;width:11px;height:11px;border-radius:50%;background:var(--danger);border:2px solid var(--bg)}.metrics{display:flex;gap:6px;flex:1;min-width:0}.metric{flex:1;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:5px 7px;min-width:0;text-align:center}.metric-label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-value{font-size:15px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-value .zero{color:var(--muted);font-weight:500}.content{flex:1;padding:16px 16px calc(var(--safe-bottom) + 24px)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card+.card{margin-top:14px}.card h2{margin:0 0 10px;font-size:15px;font-weight:650}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.act{border:none;border-radius:var(--radius);padding:16px 14px;min-height:96px;cursor:pointer;text-align:start;display:flex;flex-direction:column;justify-content:center;gap:4px;color:#fff;box-shadow:var(--shadow);transition:transform .08s ease,filter .15s ease;-webkit-tap-highlight-color:transparent}.act:active{transform:scale(.97);filter:brightness(.94)}.act-top{display:flex;align-items:center;gap:9px;min-width:0}.act .ic{font-size:26px;line-height:1;flex:none}.act .nm{font-size:17px;font-weight:650;letter-spacing:-.01em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.act .sub{font-size:11px;font-weight:400;opacity:.8}.running{text-align:center}.name-btn{background:none;border:none;cursor:pointer;padding:6px 10px;border-radius:12px;display:inline-flex;align-items:baseline;gap:8px;max-width:100%}.name-btn:active{background:#eef1f5}.name-root{color:var(--muted);font-size:17px}.name-refined{font-size:21px;font-weight:650;letter-spacing:-.01em}.name-hint{display:block;font-size:12px;color:var(--muted);margin-top:2px}.clock{font-size:52px;font-weight:300;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:6px 0 2px}.clock-sub{font-size:13px;color:var(--muted)}.ring-wrap{display:flex;justify-content:center;margin:14px 0 6px}.ring{cursor:pointer;-webkit-tap-highlight-color:transparent}.ring:active{opacity:.75}.ring-note{font-size:12px;color:var(--muted);margin-top:4px}.points{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}.chip{border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600;background:#eef1f5;color:#374151;display:inline-flex;gap:6px;align-items:center}.chip.prov{background:#fff4e5;color:#92400e}.segments{margin-top:14px;text-align:left;border-top:1px solid var(--line);padding-top:10px}.seg-row{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:14px}.seg-dot{width:10px;height:10px;border-radius:3px;flex:none}.seg-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seg-time{color:var(--muted);font-variant-numeric:tabular-nums}.actions{display:flex;gap:10px;margin-top:16px}.btn{flex:1;border:1px solid var(--line);background:var(--card);border-radius:14px;padding:14px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.btn:active{background:#eef1f5}.btn-primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn-primary:active{background:#000}.btn:disabled{opacity:.5;cursor:default}.timeline{margin-top:10px}.tl-bar{position:relative;height:34px;border-radius:10px;background:#eef1f5;overflow:hidden}.tl-block{position:absolute;top:0;bottom:0}.tl-planned{position:absolute;top:0;bottom:0;border:1px dashed #9aa3b2;border-radius:4px;opacity:.8}.tl-now{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink)}.tl-now:before{content:"";position:absolute;top:-3px;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--ink)}.tl-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:5px}.tl-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px}.tl-total b{font-size:18px}.sheet-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#10121d59;z-index:40;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s ease}@keyframes fade{0%{opacity:0}}.sheet{background:var(--card);width:100%;max-width:560px;border-radius:22px 22px 0 0;padding:8px 16px calc(var(--safe-bottom) + 20px);max-height:80vh;overflow-y:auto;animation:rise .2s cubic-bezier(.2,.8,.3,1)}@keyframes rise{0%{transform:translateY(16px)}}.sheet-grip{width:38px;height:4px;background:var(--line);border-radius:2px;margin:6px auto 12px}.sheet h3{margin:0 0 4px;font-size:17px}.sheet p.hint{margin:0 0 12px;font-size:13px;color:var(--muted)}.opt{display:flex;align-items:center;gap:12px;width:100%;background:none;border:none;border-radius:12px;padding:13px 10px;cursor:pointer;text-align:left;font-size:16px}.opt:active{background:#eef1f5}.opt.sel{background:#eef4ff;font-weight:600}.opt .ic{font-size:22px}.opt-swatch{width:12px;height:12px;border-radius:4px;flex:none}.sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}.login{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px}.login .card{width:100%;max-width:380px}.login h1{margin:0 0 4px;font-size:24px}.login p.hint{margin:0 0 18px;color:var(--muted);font-size:14px}.field{margin-bottom:12px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:5px}.field input{width:100%;padding:13px 14px;font-size:17px;border:1px solid var(--line);border-radius:12px;background:#fbfbfc}.field input:focus{outline:2px solid var(--accent);outline-offset:-1px}.field .row{display:flex;gap:8px}.field .row input{flex:1}.peek{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:0 14px;cursor:pointer;font-size:18px}.error{color:var(--danger);font-size:14px;margin:8px 0 0}.notice{background:#fff4e5;color:#92400e;border-radius:12px;padding:10px 12px;font-size:13px;margin-bottom:12px}.center-note{text-align:center;color:var(--muted);padding:40px 0}.nav{position:sticky;bottom:0;z-index:20;display:flex;gap:2px;padding:6px 6px calc(var(--safe-bottom) + 6px);background:#f4f5f7eb;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-top:1px solid var(--line)}.nav-btn{flex:1;background:none;border:none;cursor:pointer;padding:6px 2px;border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted);-webkit-tap-highlight-color:transparent}.nav-btn.active{color:var(--ink);background:#e8ebf0}.nav-btn:disabled{opacity:.38;cursor:default}.nav-ic{font-size:19px;line-height:1}.nav-lb{font-size:11px}.day-nav{display:flex;align-items:center;gap:8px;margin-bottom:12px}.day-arrow{width:38px;height:38px;flex:none;border:1px solid var(--line);background:var(--card);border-radius:12px;font-size:20px;cursor:pointer;line-height:1}.day-arrow:active{background:#eef1f5}.day-label{flex:1;text-align:center}.day-label b{display:block;font-size:16px}.day-label span{font-size:12px;color:var(--muted)}.plan-row{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.plan-row:first-of-type{border-top:none}.plan-time{width:58px;flex:none}.plan-time b{display:block;font-size:15px;font-variant-numeric:tabular-nums}.plan-time span{font-size:11px;color:var(--muted)}.plan-stripe{width:4px;border-radius:2px;flex:none}.plan-body{flex:1;min-width:0}.plan-name{font-size:15px;font-weight:600}.plan-meta{font-size:12px;color:var(--muted);margin-top:2px}.plan-actions{display:flex;gap:8px;margin-top:8px}.mini{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:6px 12px;font-size:13px;cursor:pointer}.mini:active{background:#eef1f5}.mini:disabled{opacity:.45;cursor:default}.mini.danger{color:var(--danger);border-color:#f0d0d0}.chips-row{display:flex;flex-wrap:wrap;gap:8px}.chip-btn{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 14px;font-size:14px;cursor:pointer}.chip-btn:active{background:#eef1f5}.chip-btn.sel{background:var(--ink);color:#fff;border-color:var(--ink)}.picked{margin-top:8px;font-size:14px;color:var(--muted)}.wheel{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:12px}.wheel-col{height:132px;overflow-y:auto;scroll-snap-type:y mandatory;border:1px solid var(--line);border-radius:12px;background:#fbfbfc;width:76px;padding:46px 0}.wheel-item{display:block;width:100%;border:none;background:none;cursor:pointer;padding:6px 0;font-size:19px;color:var(--muted);scroll-snap-align:center;font-variant-numeric:tabular-nums}.wheel-item.sel{color:var(--ink);font-weight:650;background:#eef4ff}.wheel-colon{font-size:20px;color:var(--muted)}.grid-day{max-height:340px;overflow-y:auto;border:1px solid var(--line);border-radius:12px}.grid-hours{position:relative}.grid-hour{display:block;width:100%;border:none;border-top:1px solid var(--line);background:none;cursor:pointer;text-align:start;padding:0 10px;-webkit-tap-highlight-color:transparent}.grid-hour:first-child{border-top:none}.grid-hour:active{background:#eef4ff}.grid-hour-label{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.grid-block{position:absolute;inset-inline-start:54px;inset-inline-end:8px;border-radius:8px;color:#fff;font-size:12px;padding:4px 8px;overflow:hidden;box-shadow:var(--shadow)}.grid-block.quiet{opacity:.5}.metric-btn{cursor:pointer;text-align:left;font:inherit}.metric-btn:active{background:#eef1f5}.metric-btn.alert{border-color:#f0c8a0;background:#fff8ef}.team-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.seg-switch{display:flex;background:#eef1f5;border-radius:10px;padding:2px;gap:2px}.seg-btn{border:none;background:none;border-radius:8px;padding:6px 10px;font-size:13px;cursor:pointer;color:var(--muted);white-space:nowrap}.seg-btn.sel{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #0000000f}.tt-row{display:flex;align-items:center;gap:10px;padding:7px 0}.tt-name{width:92px;flex:none;font-size:13px;font-weight:600}.tt-name span{display:block;font-size:11px;font-weight:400;color:var(--muted)}.tt-bar{flex:1;height:28px}.tt-seg{position:absolute;top:0;bottom:0;border:none;padding:0;cursor:pointer}.tt-seg:active{filter:brightness(.9)}.q-item{border-top:1px solid var(--line);padding:12px 0}.q-item:first-of-type{border-top:none}.q-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.q-kind{font-size:12px;color:var(--muted)}.q-self{font-size:11px;background:#fff4e5;color:#92400e;border-radius:999px;padding:2px 8px}.q-body{font-size:13px;color:var(--ink);margin-top:5px}.q-deadline{font-size:12px;color:var(--muted);margin-top:4px}.m-row{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.m-row:first-of-type{border-top:none}.m-dot{width:10px;height:10px;border-radius:50%;flex:none;margin-top:6px}.m-body{flex:1;min-width:0}.m-name{font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px}.m-tag{font-size:11px;font-weight:500;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 7px}.m-meta{font-size:13px;color:var(--ink);margin-top:2px}.m-today{font-size:12px;color:var(--muted);margin-top:2px}.m-row.off{opacity:.55}.bar{display:flex;align-items:center;gap:10px;justify-content:space-between;border-radius:12px;padding:10px 12px;font-size:13px;margin-bottom:12px}.bar-warn{background:#fff4e5;color:#92400e}.bar-info{background:#eef4ff;color:#1e429f}.bar-bad{background:#fdecec;color:#922020}.bal{display:flex;gap:8px}.bal-cell{flex:1;background:#f7f8fa;border-radius:12px;padding:10px 12px;min-width:0}.bal-cell span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.bal-cell b{font-size:20px;font-weight:650}.bal-aside{font-size:12px;font-weight:500;color:var(--muted);margin-inline-start:5px}.bal-cell.main{background:var(--ink);color:#fff}.bal-cell.main span{color:#ffffffa6}.led-row{display:flex;gap:10px;padding:11px 0;border-top:1px solid var(--line);align-items:center}.led-row:first-of-type{border-top:none}.led-stripe{width:4px;align-self:stretch;border-radius:2px;flex:none}.led-body{flex:1;min-width:0}.led-title{font-size:15px}.led-meta{font-size:12px;color:var(--muted);margin-top:2px}.led-amount{font-size:16px;font-weight:650;flex:none;text-align:right;font-variant-numeric:tabular-nums;color:#2f7a44}.led-amount.minus{color:var(--danger)}.led-amount span{display:block;font-size:10px;font-weight:500;color:var(--muted)}.act-time{display:flex;gap:10px;padding:9px 0;align-items:flex-start}.act-time-ic{font-size:20px;flex:none;line-height:1.2}.act-time-body{flex:1;min-width:0}.act-time-top{display:flex;justify-content:space-between;gap:8px;font-size:14px}.act-time-top b{font-variant-numeric:tabular-nums}.act-time-bar{height:6px;border-radius:3px;background:#eef1f5;margin:5px 0 3px;overflow:hidden}.act-time-bar span{display:block;height:100%;border-radius:3px}.act-time-meta{font-size:11px;color:var(--muted)}.prof-meta{font-size:14px;color:var(--muted);margin-bottom:14px}.nt-row{display:flex;gap:10px;padding:11px 0;border-top:1px solid var(--line)}.nt-row:first-of-type{border-top:none}.nt-row.read{opacity:.55}.nt-dot{width:9px;height:9px;border-radius:50%;flex:none;margin-top:6px}.nt-body{flex:1;min-width:0}.nt-title{font-size:15px;font-weight:600}.nt-text{font-size:13px;margin-top:2px}.nt-meta{font-size:12px;color:var(--muted);margin-top:3px}.dir-item{border-top:1px solid var(--line)}.dir-item:first-of-type{border-top:none}.dir-item.hidden .dir-name{opacity:.55}.dir-head{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;padding:11px 0;cursor:pointer;text-align:left}.dir-swatch{width:34px;height:34px;border-radius:10px;flex:none;display:grid;place-items:center;font-size:17px}.dir-name{flex:1;min-width:0;font-size:15px;font-weight:600}.dir-name span{display:block;font-size:12px;font-weight:400;color:var(--muted)}.dir-chevron{color:var(--muted);flex:none}.dir-body{padding:2px 0 12px 44px}.dir-child{display:flex;align-items:center;gap:8px;padding:6px 0}.dir-child.hidden{opacity:.55}.dir-child-name{flex:1;min-width:0;font-size:14px}.dir-tag{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 6px;margin-left:6px;white-space:nowrap}.dir-add{display:flex;gap:8px;align-items:center;margin-top:8px}.dir-add input{flex:1;min-width:0;padding:9px 12px;font-size:15px;border:1px solid var(--line);border-radius:10px;background:#fbfbfc}.act,.opt,.plan-body,.m-body,.nt-body,.led-body,.dir-name,.header-title{text-align:start}.dir-body{padding-inline-start:44px;padding-inline-end:0}.dir-tag{margin-inline-start:6px;margin-left:0}.avatar .dot{inset-inline-end:0;right:auto}[dir=rtl] .tl-total{direction:rtl}[dir=rtl] .clock,[dir=rtl] .plan-time b{direction:ltr}.login-lang{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
