:root{--ink-900:#0f172a;--ink-800:#1e293b;--ink-700:#334155;--ink-600:#475569;--ink-500:#64748b;--ink-400:#94a3b8;--ink-300:#cbd5e1;--ink-200:#e2e8f0;--ink-100:#f1f5f9;--ink-50:#f8fafc;--em-50:#ecfdf5;--em-100:#d1fae5;--em-200:#a7f3d0;--em-500:#10b981;--em-600:#059669;--em-700:#047857;--em-800:#065f46;--rd-50:#fef2f2;--rd-100:#fee2e2;--rd-200:#fecaca;--rd-500:#ef4444;--rd-600:#dc2626;--rd-700:#b91c1c;--am-50:#fffbeb;--am-100:#fef3c7;--am-200:#fde68a;--am-500:#f59e0b;--am-600:#d97706;--am-700:#b45309;--or-500:#f97316;--or-600:#ea580c;--bl-50:#eff6ff;--bl-100:#dbeafe;--bl-200:#bfdbfe;--bl-500:#3b82f6;--bl-600:#2563eb;--bl-700:#1d4ed8;--bl-800:#1e40af;--pk-50:#fdf2f8;--pk-100:#fce7f3;--pk-200:#fbcfe8;--pk-500:#ec4899;--pk-600:#db2777;--pk-700:#be185d;--pk-800:#9d174d;--vi-50:#f5f3ff;--vi-100:#ede9fe;--vi-200:#ddd6fe;--vi-500:#8b5cf6;--vi-600:#7c3aed;--vi-700:#6d28d9;--vi-800:#5b21b6;--cy-50:#ecfeff;--cy-100:#cffafe;--cy-200:#a5f3fc;--cy-500:#06b6d4;--cy-600:#0891b2;--cy-700:#0e7490;--cy-800:#155e75;--paper:#fff;--bg:#f8fafc;--border:#e2e8f0;--border-strong:#cbd5e1;--font-sans:"Geist", "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"Geist Mono", "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--sh-sm:0 1px 2px #0f172a0a, 0 1px 1px #0f172a08;--sh-md:0 1px 3px #0f172a0f, 0 4px 12px #0f172a0a;--sh-lg:0 8px 24px #0f172a14, 0 2px 6px #0f172a0a}*{box-sizing:border-box}@keyframes spin{to{transform:rotate(360deg)}}html,body,#root{width:100%;height:100%;margin:0;padding:0}html,body{font-family:var(--font-sans);color:var(--ink-900);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"ss01", "cv11";background:#f0eee9}button{font-family:inherit}.tok-mono{font-family:var(--font-mono);font-feature-settings:"tnum"}.app{background:var(--bg);width:100%;height:100%;color:var(--ink-900);display:flex;overflow:hidden}.sidebar{background:var(--paper);border-right:1px solid var(--border);flex-direction:column;flex:0 0 244px;gap:4px;width:244px;padding:18px 12px 16px;display:flex}.sidebar-brand{align-items:center;gap:10px;padding:6px 8px 18px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--em-600), #047857 60%, #064e3b);color:#fff;letter-spacing:-.02em;border-radius:8px;place-items:center;width:30px;height:30px;font-size:14px;font-weight:700;display:grid;box-shadow:inset 0 1px #fff6,0 4px 10px #05966940}.brand-name{letter-spacing:-.015em;color:var(--ink-900);font-size:15.5px;font-weight:600}.brand-name .ok{color:var(--em-600)}.nav-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-400);padding:14px 10px 6px;font-size:11px;font-weight:500}.nav-item{border-radius:var(--r-md);color:var(--ink-700);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;font-weight:500;display:flex;position:relative}.nav-item:hover{background:var(--ink-50);color:var(--ink-900)}.nav-item.active{background:var(--ink-100);color:var(--ink-900);font-weight:600}.nav-item .nav-icon{width:18px;height:18px;color:var(--ink-500);flex:0 0 18px}.nav-item.active .nav-icon{color:var(--em-600)}.nav-item .nav-badge{background:var(--rd-100);color:var(--rd-700);font-feature-settings:"tnum";border-radius:999px;margin-left:auto;padding:1px 6px;font-size:11px;font-weight:600}.sidebar-bottom{border-top:1px solid var(--border);margin-top:auto;padding:8px 6px 0}.sidebar-user{border-radius:var(--r-md);align-items:center;gap:10px;padding:8px;display:flex}.avatar{background:var(--ink-200);width:32px;height:32px;color:var(--ink-700);letter-spacing:.01em;border-radius:999px;flex:0 0 32px;place-items:center;font-size:12px;font-weight:600;display:grid}.avatar.em{background:var(--em-100);color:var(--em-800)}.avatar.am{background:var(--am-100);color:var(--am-700)}.avatar.bl{color:#1e40af;background:#dbeafe}.avatar.pk{color:#9d174d;background:#fce7f3}.avatar.vi{color:#5b21b6;background:#ede9fe}.avatar.cy{color:#155e75;background:#cffafe}.user-name{color:var(--ink-900);font-size:13px;font-weight:600}.user-role{color:var(--ink-500);font-size:11.5px}.topbar{background:var(--paper);border-bottom:1px solid var(--border);flex:0 0 60px;align-items:center;gap:16px;height:60px;padding:0 22px;display:flex}.topbar h1{color:var(--ink-900);letter-spacing:-.015em;margin:0;font-size:17px;font-weight:600}.topbar .meta{color:var(--ink-500);margin-left:4px;font-size:12.5px}.btn{border-radius:var(--r-md);border:1px solid var(--border);background:var(--paper);color:var(--ink-800);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,transform 40ms;display:inline-flex}.btn:hover{background:var(--ink-50);border-color:var(--border-strong)}.btn:active{transform:translateY(.5px)}.btn.primary{background:var(--ink-900);color:#fff;border-color:var(--ink-900)}.btn.primary:hover{background:var(--ink-800);border-color:var(--ink-800)}.btn.em{background:var(--em-600);color:#fff;border-color:var(--em-600)}.btn.em:hover{background:var(--em-700);border-color:var(--em-700)}.btn.rd{background:var(--paper);color:var(--rd-700);border-color:var(--rd-200)}.btn.rd:hover{background:var(--rd-50);border-color:var(--rd-500)}.btn.ghost{color:var(--ink-600);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--ink-100);color:var(--ink-900)}.btn.sm{border-radius:6px;padding:5px 9px;font-size:12px}.btn.icon{padding:6px}.fab-timbra{background:var(--ink-900);color:#fff;cursor:pointer;z-index:9;border:none;border-radius:999px;align-items:center;gap:10px;height:48px;padding:0 18px 0 14px;font-size:13.5px;font-weight:600;display:flex;position:absolute;bottom:22px;right:22px;box-shadow:0 10px 25px #0f172a2e,0 2px 6px #0f172a1f}.fab-timbra .dot{background:var(--em-500);border-radius:999px;width:10px;height:10px;box-shadow:0 0 0 4px #10b98140}.fab-timbra:hover{background:#000}.scheduler{background:var(--bg);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.sched-toolbar{border-bottom:1px solid var(--border);background:var(--paper);flex-wrap:wrap;align-items:center;gap:10px;padding:14px 22px;display:flex}.sched-toolbar>*,.sched-toolbar .btn{white-space:nowrap}.sched-toolbar .week-nav{align-items:center;gap:4px;display:flex}.sched-toolbar .iconbtn{border:1px solid var(--border);background:var(--paper);width:30px;height:30px;color:var(--ink-700);cursor:pointer;border-radius:7px;place-items:center;display:grid}.sched-toolbar .iconbtn:hover{background:var(--ink-50)}.sched-toolbar .week-label{color:var(--ink-900);margin:0 8px 0 4px;font-size:13.5px;font-weight:600}.sched-toolbar .sub{color:var(--ink-500);font-size:12px;font-weight:500}.sched-toolbar .spacer{flex:1}.chip-filter{color:var(--ink-700);background:var(--paper);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:5px 10px 5px 8px;font-size:12px;font-weight:500;display:inline-flex}.chip-filter .dot{border-radius:999px;width:8px;height:8px}.chip-filter:hover{background:var(--ink-50)}.sched-summary{border-bottom:1px solid var(--border);background:var(--paper);gap:0;padding:0 22px;display:flex}.sum-stat{border-right:1px solid var(--border);flex-direction:column;gap:2px;margin-right:22px;padding:12px 22px 12px 0;display:flex}.sum-stat:last-child{border-right:none}.sum-stat .label{color:var(--ink-500);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:500}.sum-stat .val{color:var(--ink-900);letter-spacing:-.02em;font-feature-settings:"tnum";font-size:17px;font-weight:600}.sum-stat .val .unit{color:var(--ink-500);margin-left:2px;font-size:12px;font-weight:500}.sum-stat .val.warn{color:var(--rd-600)}.sum-stat .val.em{color:var(--em-700)}.grid-wrap{flex:1;overflow:auto}.grid{grid-template-columns:220px repeat(7,minmax(150px,1fr));font-size:12px;display:grid}.grid-head{z-index:3;background:var(--paper);border-bottom:1px solid var(--border);color:var(--ink-700);flex-direction:column;gap:1px;padding:10px 12px;font-size:11.5px;font-weight:600;display:flex;position:sticky;top:0}.grid-head.today{background:linear-gradient(180deg, #ecfdf5 0%, var(--paper) 100%)}.grid-head .day{color:var(--ink-500);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:500}.grid-head .date{color:var(--ink-900);font-feature-settings:"tnum";font-size:14px;font-weight:600}.grid-head.today .date{color:var(--em-700)}.grid-head .stats{color:var(--ink-500);font-feature-settings:"tnum";margin-top:2px;font-size:11px}.grid-emp{z-index:2;background:var(--paper);border-right:1px solid var(--border);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px;display:flex;position:sticky;left:0}.grid-emp.head{border-bottom:1px solid var(--border);z-index:4;background:var(--paper);top:0}.grid-emp .meta{flex-direction:column;gap:2px;min-width:0;display:flex}.grid-emp .name{color:var(--ink-900);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.grid-emp .hours{color:var(--ink-500);font-feature-settings:"tnum";font-size:11px}.grid-emp .hours .ot{color:var(--am-700);font-weight:600}.grid-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--paper);flex-direction:column;gap:3px;min-height:78px;padding:4px;display:flex;position:relative}.grid-cell.weekend{background:#fbfaf8}.grid-cell.today-col{background:#f0fdf4}.grid-cell:hover{background:var(--ink-50)}.shift{cursor:pointer;border:1px solid #0000;border-radius:6px;flex-direction:column;gap:2px;padding:5px 7px;font-size:11.5px;transition:transform 80ms,box-shadow .12s;display:flex;position:relative}.shift:hover{transform:translateY(-.5px);box-shadow:0 2px 6px #0f172a0f}.shift .time{font-family:var(--font-mono);letter-spacing:-.01em;font-feature-settings:"tnum";font-size:11.5px;font-weight:600;line-height:1.1}.shift .role{opacity:.85;align-items:center;gap:4px;font-size:10.5px;font-weight:500;display:flex}.shift .role .icon{opacity:.8;flex:0 0 11px;width:11px;height:11px}.shift .right{align-items:center;gap:3px;display:flex;position:absolute;top:4px;right:4px}.shift .note-i{opacity:.7;width:11px;height:11px}.shift.approved{background:var(--em-50);color:var(--em-800);border-color:#a7f3d0}.shift.approved .role{color:var(--em-700)}.shift.completed{border-color:var(--em-500);color:var(--em-800);background:linear-gradient(#d1fae5 0%,#a7f3d0 100%)}.shift.open{background:var(--rd-50);border:1px dashed var(--rd-500);color:var(--rd-700)}.shift.open .time{color:var(--rd-700)}.shift.open .role{color:var(--rd-600)}.shift.swap{background:var(--am-50);border-color:var(--am-200);color:var(--am-700)}.shift.swap .role{color:var(--am-700)}.shift.draft{background:var(--ink-100);border:1px dashed var(--ink-300);color:var(--ink-600)}.shift.draft .time{color:var(--ink-700)}.shift .violation{background:var(--rd-600);color:#fff;width:16px;height:16px;box-shadow:0 0 0 2px var(--paper);z-index:2;border-radius:999px;place-items:center;display:grid;position:absolute;top:-6px;left:-6px}.shift .violation svg{width:9px;height:9px}.cell-add{color:var(--ink-400);cursor:pointer;opacity:0;border-radius:6px;flex:1;justify-content:center;align-items:center;font-size:18px;font-weight:300;transition:opacity .12s,background .12s,color .12s;display:flex}.grid-cell:hover .cell-add{opacity:1}.cell-add:hover{background:var(--ink-100);color:var(--ink-700)}.cell-warn-banner{background:var(--rd-600);color:#fff;letter-spacing:.01em;z-index:3;border-radius:4px;align-items:center;gap:4px;padding:3px 6px;font-size:10px;font-weight:600;display:flex;position:absolute;top:4px;left:4px;right:4px;box-shadow:0 2px 6px #dc262640}.cell-warn-banner svg{width:11px;height:11px}.absences{background:var(--bg);flex-direction:column;flex:1;display:flex;overflow:hidden}.abs-content{flex:1;grid-template-columns:1fr 320px;display:grid;overflow:hidden}.abs-main{flex-direction:column;gap:16px;padding:22px;display:flex;overflow:auto}.abs-side{border-left:1px solid var(--border);background:var(--paper);flex-direction:column;gap:22px;padding:22px;display:flex;overflow:auto}.abs-tabs{background:var(--paper);border-bottom:1px solid var(--border);gap:4px;padding:0 22px;display:flex}.abs-tab{color:var(--ink-500);cursor:pointer;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-right:18px;padding:12px 4px;font-size:13px;font-weight:500;display:inline-flex}.abs-tab.active{color:var(--ink-900);border-bottom-color:var(--ink-900);font-weight:600}.abs-tab .count{background:var(--ink-100);color:var(--ink-700);font-feature-settings:"tnum";border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.abs-tab.active .count{background:var(--ink-900);color:#fff}.req-card{background:var(--paper);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);grid-template-columns:1fr auto;gap:14px 18px;padding:16px;display:grid;position:relative}.req-head{grid-column:1/-1;align-items:center;gap:12px;display:flex}.req-head .avatar{width:38px;height:38px;font-size:13px}.req-head .who{color:var(--ink-900);font-size:14px;font-weight:600}.req-head .role{color:var(--ink-500);margin-top:1px;font-size:12px}.req-pill{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;margin-left:auto;padding:3px 8px;font-size:11px;font-weight:600}.req-pill.ferie{color:#1e40af;background:#dbeafe}.req-pill.malattia{color:#86198f;background:#fae8ff}.req-pill.permesso{background:var(--am-100);color:var(--am-700)}.req-pill.l104{background:var(--ink-100);color:var(--ink-700)}.req-meta{grid-template-columns:1fr 1fr;gap:10px;font-size:12px;display:grid}.req-meta .label{color:var(--ink-500);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:500}.req-meta .val{color:var(--ink-900);font-feature-settings:"tnum";margin-top:2px;font-size:13px;font-weight:500}.req-meta .val .days{color:var(--ink-500);font-weight:400}.saldo{background:var(--ink-50);border-radius:8px;flex-direction:column;grid-column:1/-1;gap:6px;padding:10px 12px;display:flex}.saldo .row{align-items:baseline;gap:8px;display:flex}.saldo .row .label{color:var(--ink-500);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:500}.saldo .row .val{color:var(--ink-900);font-feature-settings:"tnum";margin-left:auto;font-size:12.5px;font-weight:600}.saldo .row .val .after{color:var(--ink-500);font-weight:500}.saldo .row .val .after.warn{color:var(--rd-600);font-weight:600}.saldo .bar{background:var(--ink-200);border-radius:999px;width:100%;height:6px;position:relative;overflow:hidden}.saldo .bar .fill{background:var(--em-500);border-radius:999px;position:absolute;top:0;bottom:0;left:0}.saldo .bar .fill.after{background:repeating-linear-gradient(45deg, var(--am-500) 0 4px, var(--am-600) 4px 8px)}.req-alert{background:var(--rd-50);border:1px solid var(--rd-200);color:var(--rd-700);border-radius:8px;grid-column:1/-1;align-items:flex-start;gap:10px;padding:10px 12px;font-size:12.5px;line-height:1.4;display:flex}.req-alert.am{background:var(--am-50);border-color:var(--am-200);color:var(--am-700)}.req-alert svg{flex:0 0 16px;width:16px;height:16px;margin-top:1px}.req-alert .head{font-weight:600}.req-actions{grid-column:1/-1;align-items:center;gap:8px;margin-top:4px;display:flex}.req-actions .grow{flex:1}.reject-reason{background:var(--rd-50);border:1px solid var(--rd-200);border-radius:8px;flex-direction:column;grid-column:1/-1;gap:8px;padding:12px;display:flex}.reject-reason .label{color:var(--rd-700);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.reject-reason textarea{resize:vertical;border:1px solid var(--rd-200);background:var(--paper);width:100%;min-height:64px;color:var(--ink-900);border-radius:6px;outline:none;padding:8px 10px;font-family:inherit;font-size:13px;transition:border-color .12s}.reject-reason textarea:focus{border-color:var(--rd-500)}.reject-reason .quick{flex-wrap:wrap;gap:6px;display:flex}.reject-reason .quick button{background:var(--paper);border:1px solid var(--rd-200);color:var(--rd-700);cursor:pointer;border-radius:999px;padding:4px 9px;font-size:11.5px}.reject-reason .quick button:hover{background:var(--rd-100)}.req-card.processed{opacity:.55}.req-card .stamp{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:600;position:absolute;top:12px;right:12px}.req-card .stamp.em{background:var(--em-100);color:var(--em-700)}.req-card .stamp.rd{background:var(--rd-100);color:var(--rd-700)}.side-h{color:var(--ink-500);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px;font-size:11.5px;font-weight:600}.side-list{flex-direction:column;gap:12px;display:flex}.side-emp{align-items:center;gap:10px;display:flex}.side-emp .name{color:var(--ink-900);font-size:13px;font-weight:500}.side-emp .saldo-mini{color:var(--ink-500);gap:8px;margin-top:2px;font-size:11px;display:flex}.side-emp .saldo-mini .v{color:var(--ink-700);font-feature-settings:"tnum";font-weight:600}.side-emp .saldo-mini .v.warn{color:var(--rd-600)}.phone{width:100%;height:100%;color:var(--ink-900);font-family:var(--font-sans);background:#f1efe9;flex-direction:column;display:flex;position:relative;overflow:hidden}.statusbar{height:38px;color:var(--ink-900);font-feature-settings:"tnum";background:0 0;flex:0 0 38px;justify-content:space-between;align-items:center;padding:0 22px;font-size:13px;font-weight:600;display:flex}.statusbar .right{align-items:center;gap:4px;display:flex}.m-header{background:0 0;align-items:center;gap:12px;padding:8px 18px;display:flex}.m-header .greet{color:var(--ink-500);margin-bottom:-2px;font-size:12px}.m-header .name{color:var(--ink-900);letter-spacing:-.015em;font-size:17px;font-weight:600}.m-header .menu{background:var(--paper);border:1px solid var(--border);width:36px;height:36px;color:var(--ink-700);border-radius:999px;place-items:center;margin-left:auto;display:grid}.m-body{flex-direction:column;flex:1;gap:16px;padding:8px 18px 100px;display:flex;overflow:auto}.next-card{color:#fff;background:linear-gradient(140deg,#0f172a 0%,#1e293b 60%,#064e3b 130%);border-radius:18px;padding:18px 18px 16px;position:relative;overflow:hidden;box-shadow:0 10px 30px #0f172a2e,0 2px 6px #0f172a1a}.next-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#10b98138 0%,#0000 65%);border-radius:50%;width:160px;height:160px;position:absolute;top:-40px;right:-30px}.next-card .eyebrow{text-transform:uppercase;letter-spacing:.08em;color:#ffffff8c;align-items:center;gap:6px;font-size:11px;font-weight:500;display:flex}.next-card .eyebrow .pulse{background:var(--em-500);border-radius:999px;width:6px;height:6px;animation:2s infinite pulse;box-shadow:0 0 #10b98199}@keyframes pulse{0%{box-shadow:0 0 #10b98199}70%{box-shadow:0 0 0 8px #10b98100}to{box-shadow:0 0 #10b98100}}.next-card .day{color:#ffffffb3;margin-top:12px;font-size:14px;font-weight:500}.next-card .time{font-family:var(--font-mono);letter-spacing:-.025em;font-feature-settings:"tnum";margin-top:4px;font-size:36px;font-weight:600;line-height:1.05}.next-card .time .sep{color:#fff6;margin:0 4px}.next-card .duration{color:#fff9;font-feature-settings:"tnum";margin-top:4px;font-size:13px}.next-card .row{color:#ffffffd9;align-items:center;gap:8px;margin-top:14px;font-size:13px;display:flex}.next-card .row .pill{background:#ffffff1a;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.next-card .countdown{color:#ffffffb3;border-top:1px solid #ffffff1a;align-items:center;gap:6px;margin-top:14px;padding-top:12px;font-size:12.5px;display:flex}.next-card .countdown .em{color:var(--em-200);font-weight:600}.timbra-wrap{flex-direction:column;align-items:center;gap:10px;padding:4px 0 6px;display:flex}.timbra-btn{background:radial-gradient(circle at 30% 30%, var(--em-500), var(--em-600) 60%, var(--em-700) 100%);color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:168px;height:168px;transition:transform .15s,box-shadow .15s;display:flex;position:relative;box-shadow:0 0 0 8px #10b9811a,0 0 0 16px #10b9810d,0 14px 32px #05966959,inset 0 1px #ffffff4d}.timbra-btn:active{transform:scale(.96)}.timbra-btn .icon{width:38px;height:38px}.timbra-btn .label{letter-spacing:-.01em;margin-top:2px;font-size:17px;font-weight:600}.timbra-btn .sub{color:#ffffffbf;font-size:11px;font-family:var(--font-mono);font-feature-settings:"tnum";letter-spacing:-.01em}.timbra-btn.uscita{background:radial-gradient(circle at 30% 30%,#f97316,#ea580c 60%,#c2410c 100%);box-shadow:0 0 0 8px #f973161a,0 0 0 16px #f973160d,0 14px 32px #ea580c59,inset 0 1px #ffffff4d}.timbra-state{color:var(--ink-500);align-items:center;gap:6px;margin-top:2px;font-size:12.5px;display:flex}.timbra-state .live{color:var(--em-700);font-weight:600;font-family:var(--font-mono);font-feature-settings:"tnum"}.privacy-line{color:var(--ink-500);text-align:center;background:var(--paper);border:1px solid var(--border);opacity:0;pointer-events:none;border-radius:999px;align-items:center;gap:5px;padding:4px 12px;font-size:11.5px;transition:opacity .25s,transform .25s;display:flex;transform:translateY(4px)}.privacy-line.visible{opacity:1;transform:translateY(0)}.privacy-line svg{width:12px;height:12px;color:var(--em-600)}.m-section{background:var(--paper);border:1px solid var(--border);border-radius:16px;overflow:hidden}.m-section .head{justify-content:space-between;align-items:center;gap:8px;padding:14px 16px 10px;display:flex}.m-section .head .title{color:var(--ink-900);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.m-section .head .count{background:var(--rd-100);color:var(--rd-700);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.m-section .head .more{color:var(--ink-500);font-size:12px;font-weight:500}.open-shift{border-top:1px solid var(--border);cursor:pointer;align-items:center;gap:12px;padding:12px 16px;display:flex}.open-shift:hover{background:var(--ink-50)}.open-shift .icon-wrap{background:var(--rd-50);border:1px dashed var(--rd-500);width:40px;height:40px;color:var(--rd-600);border-radius:10px;flex:0 0 40px;place-items:center;display:grid}.open-shift .info{flex:1;min-width:0}.open-shift .info .when{color:var(--ink-900);font-feature-settings:"tnum";font-size:13.5px;font-weight:600}.open-shift .info .meta{color:var(--ink-500);margin-top:2px;font-size:12px}.open-shift .btn{flex:none;margin-left:auto}.qa-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.qa-card{background:var(--paper);border:1px solid var(--border);cursor:pointer;border-radius:14px;flex-direction:column;gap:6px;padding:14px;display:flex;position:relative}.qa-card:hover{border-color:var(--border-strong)}.qa-card .qa-icon{border-radius:10px;place-items:center;width:36px;height:36px;margin-bottom:4px;display:grid}.qa-card .qa-icon.em{background:var(--em-100);color:var(--em-700)}.qa-card .qa-icon.bl{color:#1e40af;background:#dbeafe}.qa-card .qa-icon.am{background:var(--am-100);color:var(--am-700)}.qa-card .qa-icon.vi{color:#5b21b6;background:#ede9fe}.qa-card .label{color:var(--ink-900);font-size:13.5px;font-weight:600}.qa-card .sub{color:var(--ink-500);font-size:11.5px}.bottombar{-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border);z-index:6;background:#ffffffeb;align-items:flex-start;height:78px;padding:8px 8px 22px;display:flex;position:absolute;bottom:0;left:0;right:0}.bottombar .b-item{color:var(--ink-500);cursor:pointer;flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 0;font-size:10.5px;font-weight:500;display:flex;position:relative}.bottombar .b-item.active{color:var(--ink-900)}.bottombar .b-item.active .b-ic{color:var(--em-600)}.bottombar .b-ic{width:22px;height:22px}.bottombar .b-fab{background:var(--ink-900);color:#fff;border:4px solid #f1efe9;border-radius:999px;place-items:center;width:56px;height:56px;margin-top:-22px;display:grid;box-shadow:0 8px 20px #0f172a47}.bottombar .b-fab svg{width:24px;height:24px}.sheet-overlay{z-index:10;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a5c;transition:opacity .2s;position:absolute;inset:0}.sheet-overlay.open{opacity:1;pointer-events:all}.sheet{background:var(--paper);z-index:11;border-radius:22px 22px 0 0;padding:12px 18px 30px;transition:transform .28s cubic-bezier(.2,.7,.3,1);position:absolute;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -10px 30px #0f172a2e}.sheet.open{transform:translateY(0)}.sheet .grabber{background:var(--ink-300);border-radius:999px;width:36px;height:4px;margin:4px auto 14px}.sheet .sh-title{color:var(--ink-900);letter-spacing:-.01em;margin-bottom:14px;font-size:16px;font-weight:600}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field .label{color:var(--ink-600);letter-spacing:.01em;font-size:12px;font-weight:500}.field .input,.field select,.field textarea{border:1px solid var(--border);width:100%;color:var(--ink-900);background:var(--paper);border-radius:10px;outline:none;padding:11px 12px;font-family:inherit;font-size:14px;transition:border-color .12s,box-shadow .12s}.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.field .input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink-900);box-shadow:0 0 0 3px #0f172a0f}.field .row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.toggle-row{background:var(--ink-50);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:14px;padding:12px 14px;display:flex}.toggle-row .lbl{flex-direction:column;display:flex}.toggle-row .lbl .t{color:var(--ink-900);font-size:13.5px;font-weight:600}.toggle-row .lbl .s{color:var(--ink-500);margin-top:2px;font-size:11.5px}.switch{--w:44px;width:var(--w);background:var(--ink-300);cursor:pointer;flex:0 0 var(--w);border-radius:999px;height:26px;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:999px;width:20px;height:20px;transition:transform .18s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.switch.on{background:var(--em-600)}.switch.on:after{transform:translate(18px)}.saldo-mini-card{background:var(--em-50);border:1px solid var(--em-100);border-radius:12px;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.saldo-mini-card .ico{color:var(--em-700)}.saldo-mini-card .txt{color:var(--em-800);flex:1;font-size:12.5px}.saldo-mini-card .v{color:var(--em-800);font-feature-settings:"tnum";font-size:14px;font-weight:600}.ab-shell{background:var(--paper);width:100%;height:100%;display:flex;position:relative;overflow:hidden}.ab-phone{background:#f1efe9;width:100%;height:100%;position:relative;overflow:hidden}.tweaks-mount{z-index:12;position:fixed;bottom:16px;right:16px}.ab-shell ::-webkit-scrollbar{display:none}.ab-phone ::-webkit-scrollbar{display:none}.ab-shell *,.ab-phone *{scrollbar-width:none}:root{--ai-50:#faf5ff;--ai-100:#f3e8ff;--ai-200:#e9d5ff;--ai-300:#d8b4fe;--ai-500:#a855f7;--ai-600:#9333ea;--ai-700:#7e22ce;--ai-800:#6b21a8;--ai-grad:linear-gradient(135deg, #a855f7 0%, #6366f1 100%);--ai-grad-soft:linear-gradient(135deg, #faf5ff 0%, #eef2ff 100%)}.ai-cta{border:1px solid var(--ink-200);background:var(--paper);color:var(--ink-700);cursor:pointer;border-radius:8px;align-items:center;gap:8px;min-width:260px;padding:6px 8px 6px 12px;font-family:inherit;font-size:13px;font-weight:500;transition:border-color .12s,background .12s,box-shadow .12s;display:inline-flex}.ai-cta:hover{border-color:var(--ai-300);background:var(--ai-50);box-shadow:0 0 0 3px #a855f712}.ai-cta .ph{text-align:left;color:var(--ink-500);flex:1}.ai-cta .ai-spark{background:var(--ai-grad);color:#fff;border-radius:6px;place-items:center;width:22px;height:22px;display:grid;box-shadow:0 2px 6px #6366f147}.ai-cta .kbd{background:var(--ink-100);color:var(--ink-600);font-size:11px;font-family:var(--font-mono);border:1px solid var(--ink-200);border-bottom-width:2px;border-radius:5px;align-items:center;gap:2px;padding:2px 6px;font-weight:500;display:inline-flex}.ai-plan-btn{background:var(--ai-grad);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:7px;padding:7px 12px 7px 10px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex;position:relative;box-shadow:0 2px 8px #6366f147,inset 0 1px #fff3}.ai-plan-btn:before{content:"";pointer-events:none;background:linear-gradient(135deg,#ffffff40,#0000 50%);border-radius:8px;position:absolute;inset:0}.ai-plan-btn:hover{filter:brightness(1.08)}.rag-chip{background:var(--em-50);border:1px solid var(--em-100);color:var(--em-800);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:4px 10px 4px 6px;font-family:inherit;font-size:11.5px;font-weight:500;display:inline-flex;position:relative}.rag-chip:hover{background:var(--em-100)}.rag-chip .ic{background:var(--em-600);color:#fff;border-radius:999px;flex:0 0 18px;place-items:center;width:18px;height:18px;display:grid}.rag-chip .pulse-dot{background:var(--em-500);border-radius:999px;width:6px;height:6px;animation:2s infinite ragpulse}@keyframes ragpulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.8)}}.cmd-overlay{-webkit-backdrop-filter:blur(6px);z-index:18;opacity:0;pointer-events:none;background:#0f172a66;justify-content:center;align-items:flex-start;padding-top:13vh;transition:opacity .16s;display:flex;position:fixed;inset:0}.cmd-overlay.open{opacity:1;pointer-events:all}.cmd-panel{background:var(--paper);border-radius:16px;width:680px;max-width:calc(100vw - 40px);transition:transform .18s cubic-bezier(.2,.7,.3,1);overflow:hidden;transform:scale(.97)translateY(-8px);box-shadow:0 24px 60px #0f172a38,0 8px 16px #0f172a14,inset 0 0 0 1px #0f172a0a}.cmd-overlay.open .cmd-panel{transform:scale(1)translateY(0)}.cmd-input-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:14px 18px;display:flex}.cmd-input-row .ai-spark{background:var(--ai-grad);color:#fff;border-radius:8px;flex:0 0 28px;place-items:center;width:28px;height:28px;display:grid;box-shadow:0 2px 8px #6366f14d}.cmd-input-row input{color:var(--ink-900);letter-spacing:-.01em;background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:16px}.cmd-input-row input::placeholder{color:var(--ink-400)}.cmd-input-row .mic{background:var(--ink-50);border:1px solid var(--border);width:30px;height:30px;color:var(--ink-700);cursor:pointer;border-radius:8px;place-items:center;display:grid}.cmd-input-row .mic.listening{background:var(--rd-50);color:var(--rd-600);border-color:var(--rd-200);animation:1.2s infinite micpulse}@keyframes micpulse{0%,to{box-shadow:0 0 #ef44444d}50%{box-shadow:0 0 0 6px #ef444400}}.cmd-input-row .kbd{background:var(--ink-100);border:1px solid var(--ink-200);color:var(--ink-600);font-size:11px;font-family:var(--font-mono);border-radius:5px;padding:3px 7px;font-weight:500;display:inline-flex}.cmd-context{color:var(--ink-500);border-bottom:1px solid var(--border);background:var(--ink-50);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 18px;font-size:11.5px;display:flex}.cmd-context .label{color:var(--ink-600);text-transform:uppercase;letter-spacing:.05em;margin-right:4px;font-size:10.5px;font-weight:500}.cmd-context .src{background:var(--paper);border:1px solid var(--border);color:var(--ink-700);border-radius:999px;align-items:center;gap:4px;padding:2px 7px 2px 6px;font-size:11px;display:inline-flex}.cmd-context .src .dot{background:var(--em-500);border-radius:999px;width:5px;height:5px}.cmd-list{max-height:420px;padding:8px 0;overflow:auto}.cmd-group-h{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-400);padding:10px 18px 6px;font-size:10.5px;font-weight:600}.cmd-item{color:var(--ink-800);cursor:pointer;border-left:3px solid #0000;align-items:center;gap:12px;padding:8px 18px;font-size:13.5px;display:flex}.cmd-item:hover,.cmd-item.active{background:var(--ai-50);border-left-color:var(--ai-500);color:var(--ink-900)}.cmd-item .ic{background:var(--ink-100);width:28px;height:28px;color:var(--ink-700);border-radius:7px;flex:0 0 28px;place-items:center;display:grid}.cmd-item:hover .ic,.cmd-item.active .ic{background:var(--ai-100);color:var(--ai-700)}.cmd-item .text{flex:1}.cmd-item .text .title{font-weight:500}.cmd-item .text .sub{color:var(--ink-500);margin-top:1px;font-size:11.5px}.cmd-item .meta-pill{background:var(--ink-100);color:var(--ink-600);border-radius:999px;padding:2px 7px;font-size:10.5px;font-weight:500}.cmd-item .ret{color:var(--ink-400);font-size:10.5px;font-family:var(--font-mono)}.cmd-foot{border-top:1px solid var(--border);background:var(--ink-50);color:var(--ink-500);align-items:center;gap:14px;padding:8px 18px;font-size:11px;display:flex}.cmd-foot .hint{align-items:center;gap:4px;display:inline-flex}.cmd-foot .kbd{background:var(--paper);border:1px solid var(--border);font-family:var(--font-mono);color:var(--ink-700);border-radius:4px;padding:1px 6px;font-size:10.5px;display:inline-flex}.cmd-thinking{flex-direction:column;gap:12px;padding:18px 22px 22px;display:flex}.cmd-thinking .step{color:var(--ink-600);opacity:.4;align-items:center;gap:10px;font-size:13px;transition:opacity .25s,color .25s;display:flex}.cmd-thinking .step.active{opacity:1;color:var(--ink-900);font-weight:500}.cmd-thinking .step.done{opacity:1;color:var(--em-700)}.cmd-thinking .step .ico{background:var(--ink-100);width:22px;height:22px;color:var(--ink-500);border-radius:999px;flex:0 0 22px;place-items:center;display:grid}.cmd-thinking .step.active .ico{background:var(--ai-100);color:var(--ai-700)}.cmd-thinking .step.done .ico{background:var(--em-100);color:var(--em-700)}.cmd-thinking .step .ico.spin{animation:1s linear infinite spin}.shift.preview-edit{background:#10b9810f;animation:1.6s ease-in-out infinite previewPulse;position:relative;border-style:dashed!important;border-width:2px!important;border-color:var(--em-600)!important}.shift.preview-edit.conflict{background:#ef44440f;border-color:var(--rd-500)!important}.shift.preview-new{background:#a855f70f;animation:1.6s ease-in-out infinite previewPulse;border-style:dashed!important;border-width:2px!important;border-color:var(--ai-500)!important;color:var(--ai-800)!important}.shift.preview-new .time{color:var(--ai-800)!important}.shift.preview-new .role{color:var(--ai-700)!important}@keyframes previewPulse{0%,to{box-shadow:0 0 #10b98100}50%{box-shadow:0 0 0 4px #10b9811a}}.shift.preview-edit.conflict{animation:1.6s ease-in-out infinite previewPulseRed}@keyframes previewPulseRed{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 0 4px #ef44441f}}.shift .preview-strike{color:var(--ink-500);font-size:10px;font-family:var(--font-mono);margin-top:1px;font-weight:500;-webkit-text-decoration:line-through #0f172a66;text-decoration:line-through #0f172a66;text-decoration-thickness:1.5px}.shift .preview-tag{background:var(--ai-grad);color:#fff;text-transform:uppercase;letter-spacing:.04em;box-shadow:0 1px 3px #6366f166, 0 0 0 1.5px var(--paper);z-index:3;border-radius:999px;padding:2px 6px;font-size:9px;font-weight:700;position:absolute;top:-8px;right:-6px}.shift .preview-tag.warn{background:linear-gradient(135deg, var(--or-500), var(--rd-500));box-shadow:0 1px 3px #ef444466, 0 0 0 1.5px var(--paper)}.preview-bar{background:var(--ink-900);color:#fff;z-index:8;border-radius:14px;align-items:center;gap:16px;min-width:540px;padding:10px 10px 10px 18px;font-family:inherit;animation:.25s cubic-bezier(.2,.7,.3,1) previewBarIn;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 18px 40px #0f172a52,0 4px 12px #0f172a2e}@keyframes previewBarIn{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.preview-bar .ai-spark{background:var(--ai-grad);color:#fff;border-radius:8px;flex:0 0 30px;place-items:center;width:30px;height:30px;display:grid}.preview-bar .title{letter-spacing:-.005em;font-size:13px;font-weight:600}.preview-bar .meta{color:#fff9;gap:10px;margin-top:1px;font-size:11.5px;display:flex}.preview-bar .meta .em{color:var(--em-200)}.preview-bar .meta .warn{color:var(--am-200)}.preview-bar .ghost-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:8px;padding:7px 12px;font-family:inherit;font-size:12.5px;font-weight:500}.preview-bar .ghost-btn:hover{background:#ffffff14}.preview-bar .apply-btn{background:var(--em-600);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:12.5px;font-weight:600;display:inline-flex;box-shadow:inset 0 1px #fff3}.preview-bar .apply-btn:hover{background:var(--em-700)}.preview-bar .apply-btn:disabled{opacity:.5;cursor:not-allowed}.ai-drawer-overlay{z-index:15;opacity:0;pointer-events:none;background:#0f172a2e;transition:opacity .2s;position:fixed;inset:0}.ai-drawer-overlay.open{opacity:1;pointer-events:all}.ai-drawer{background:var(--paper);border-left:1px solid var(--border);z-index:16;flex-direction:column;width:440px;height:100%;transition:transform .26s cubic-bezier(.2,.7,.3,1);display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-20px 0 50px #0f172a1f}.ai-drawer.open{transform:translate(0)}.ai-drawer-head{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:16px 18px 14px;display:flex}.ai-drawer-head .ai-spark{background:var(--ai-grad);color:#fff;border-radius:10px;flex:0 0 36px;place-items:center;width:36px;height:36px;display:grid}.ai-drawer-head .title{color:var(--ink-900);font-size:14.5px;font-weight:600}.ai-drawer-head .sub{color:var(--ink-500);margin-top:1px;font-size:11.5px}.ai-drawer-head .close{background:var(--ink-50);border:1px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--ink-700);border-radius:8px;place-items:center;margin-left:auto;display:grid}.ai-drawer-body{flex-direction:column;flex:1;gap:14px;padding:18px;display:flex;overflow:auto}.ai-msg{gap:10px;max-width:100%;display:flex}.ai-msg .av{border-radius:8px;flex:0 0 28px;place-items:center;width:28px;height:28px;font-size:11px;font-weight:600;display:grid}.ai-msg.user{justify-content:flex-end}.ai-msg.user .av{background:var(--em-100);color:var(--em-800);order:2}.ai-msg .av.ai{background:var(--ai-grad);color:#fff}.ai-msg .bubble{background:var(--ink-50);border:1px solid var(--border);color:var(--ink-800);border-radius:12px;max-width:86%;padding:10px 12px;font-size:13.5px;line-height:1.5}.ai-msg.user .bubble{background:var(--ink-900);color:#fff;border-color:var(--ink-900)}.ai-msg .bubble strong{color:var(--ink-900);font-weight:600}.ai-msg.user .bubble strong{color:#fff}.ai-source{background:var(--em-50);border:1px solid var(--em-100);color:var(--em-800);cursor:default;border-radius:999px;align-items:center;gap:5px;margin-top:8px;margin-right:6px;padding:3px 9px 3px 7px;font-size:11px;font-weight:500;text-decoration:none;display:inline-flex}.ai-source:hover{background:var(--em-100)}.ai-source .ico{color:var(--em-700)}.ai-sources-row{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.ai-data{background:var(--paper);border:1px solid var(--border);border-radius:10px;margin-top:10px;overflow:hidden}.ai-data .h{border-bottom:1px solid var(--border);background:var(--ink-50);color:var(--ink-700);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;padding:8px 12px;font-size:11px;font-weight:600;display:flex}.ai-data .row{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;align-items:center;padding:8px 12px;font-size:12.5px;display:grid}.ai-data .row:last-child{border-bottom:none}.ai-data .row .v{font-family:var(--font-mono);font-feature-settings:"tnum";color:var(--ink-900);font-weight:600}.ai-data .row .v.warn{color:var(--am-700)}.ai-suggest{flex-direction:column;gap:6px;margin-top:4px;display:flex}.ai-suggest button{text-align:left;background:var(--paper);border:1px solid var(--border);color:var(--ink-700);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:12.5px;display:flex}.ai-suggest button:hover{background:var(--ai-50);border-color:var(--ai-200);color:var(--ink-900)}.ai-suggest button .sparkle{color:var(--ai-600)}.ai-drawer-foot{border-top:1px solid var(--border);background:var(--paper);padding:12px 16px 16px}.ai-drawer-foot .input-wrap{border:1px solid var(--border);background:var(--paper);border-radius:12px;align-items:center;gap:8px;padding:4px 4px 4px 12px;transition:border-color .12s,box-shadow .12s;display:flex}.ai-drawer-foot .input-wrap:focus-within{border-color:var(--ai-300);box-shadow:0 0 0 3px #a855f714}.ai-drawer-foot input{color:var(--ink-900);background:0 0;border:none;outline:none;flex:1;padding:8px 0;font-family:inherit;font-size:13.5px}.ai-drawer-foot input::placeholder{color:var(--ink-400)}.ai-drawer-foot .send{background:var(--ai-grad);color:#fff;cursor:pointer;border:none;border-radius:8px;place-items:center;width:32px;height:32px;display:grid;box-shadow:0 1px 3px #6366f14d}.ai-drawer-foot .send:disabled{background:var(--ink-200);color:var(--ink-500);cursor:not-allowed;box-shadow:none}.ai-drawer-foot .privacy{color:var(--ink-500);justify-content:center;align-items:center;gap:4px;margin-top:8px;font-size:10.5px;display:flex}.ai-typing{align-items:center;gap:4px;display:inline-flex}.ai-typing span{background:var(--ai-500);border-radius:999px;width:6px;height:6px;animation:1.2s ease-in-out infinite typing}.ai-typing span:nth-child(2){animation-delay:.15s}.ai-typing span:nth-child(3){animation-delay:.3s}@keyframes typing{0%,80%,to{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.sub-cand{border:1px solid var(--border);background:var(--paper);border-radius:10px;align-items:center;gap:10px;margin-top:6px;padding:9px 10px;display:flex}.sub-cand .name{color:var(--ink-900);font-size:13px;font-weight:600}.sub-cand .meta{color:var(--ink-500);margin-top:1px;font-size:11.5px}.sub-cand .meta .ok{color:var(--em-700);font-weight:500}.sub-cand .pick{background:var(--ink-900);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-left:auto;padding:5px 10px;font-size:11.5px;font-weight:500}.sub-excluded{color:var(--ink-500);border:1px dashed var(--border);background:var(--ink-50);border-radius:8px;align-items:center;gap:10px;margin-top:5px;padding:7px 10px;font-size:11.5px;display:flex}.sub-excluded .why{color:var(--rd-600);font-weight:500}.plan-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:17;opacity:0;pointer-events:none;background:#0f172a66;justify-content:center;align-items:center;transition:opacity .18s;display:flex;position:fixed;inset:0}.plan-overlay.open{opacity:1;pointer-events:all}.plan-panel{background:var(--paper);border-radius:16px;width:540px;max-width:calc(100vw - 40px);transition:transform .2s cubic-bezier(.2,.7,.3,1);overflow:hidden;transform:scale(.97);box-shadow:0 24px 60px #0f172a40}.plan-overlay.open .plan-panel{transform:scale(1)}.plan-head{border-bottom:1px solid var(--border);align-items:flex-start;gap:14px;padding:18px 22px 14px;display:flex}.plan-head .ai-spark{background:var(--ai-grad);color:#fff;border-radius:10px;flex:0 0 38px;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 2px 8px #6366f159}.plan-head .title{color:var(--ink-900);letter-spacing:-.01em;font-size:16px;font-weight:600}.plan-head .sub{color:var(--ink-500);margin-top:2px;font-size:12.5px;line-height:1.45}.plan-head .close{background:var(--ink-50);border:1px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--ink-700);border-radius:8px;place-items:center;margin-left:auto;display:grid}.plan-body{padding:18px 22px 8px}.plan-section{margin-bottom:16px}.plan-section .h{color:var(--ink-500);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:11.5px;font-weight:600}.plan-constraint{border:1px solid var(--border);cursor:pointer;border-radius:10px;align-items:center;gap:10px;margin-bottom:6px;padding:10px 12px;font-size:13px;display:flex}.plan-constraint:hover{background:var(--ink-50)}.plan-constraint.on{background:var(--ai-50);border-color:var(--ai-200)}.plan-constraint .ic{background:var(--ink-100);width:28px;height:28px;color:var(--ink-700);border-radius:8px;flex:0 0 28px;place-items:center;display:grid}.plan-constraint.on .ic{background:var(--ai-100);color:var(--ai-700)}.plan-constraint .text{flex:1}.plan-constraint .text .t{color:var(--ink-900);font-weight:500}.plan-constraint .text .s{color:var(--ink-500);margin-top:1px;font-size:11.5px}.plan-constraint .check{border:1.5px solid var(--ink-300);background:var(--paper);border-radius:5px;flex:0 0 18px;place-items:center;width:18px;height:18px;display:grid}.plan-constraint.on .check{background:var(--ai-600);border-color:var(--ai-600);color:#fff}.plan-objective{grid-template-columns:1fr 1fr;gap:8px;display:grid}.plan-objective .opt{border:1.5px solid var(--border);cursor:pointer;background:var(--paper);text-align:left;border-radius:10px;padding:12px;font-family:inherit}.plan-objective .opt.on{border-color:var(--ai-500);background:var(--ai-50);box-shadow:0 0 0 3px #a855f714}.plan-objective .opt .t{color:var(--ink-900);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.plan-objective .opt .s{color:var(--ink-500);margin-top:3px;font-size:11.5px;line-height:1.4}.plan-foot{background:var(--ink-50);border-top:1px solid var(--border);align-items:center;gap:10px;padding:14px 22px 18px;display:flex}.plan-foot .help{color:var(--ink-500);flex:1;font-size:11.5px}.plan-foot .help .em{color:var(--ai-700);font-weight:500}.plan-progress{padding:30px 30px 20px}.plan-progress .step{color:var(--ink-700);opacity:.4;align-items:center;gap:12px;padding:6px 0;font-size:13px;transition:opacity .2s;display:flex}.plan-progress .step.done{opacity:1;color:var(--em-700)}.plan-progress .step.active{opacity:1;color:var(--ink-900);font-weight:500}.plan-progress .step .ic{background:var(--ink-100);width:24px;height:24px;color:var(--ink-500);border-radius:999px;flex:0 0 24px;place-items:center;display:grid}.plan-progress .step.active .ic{background:var(--ai-100);color:var(--ai-700)}.plan-progress .step.done .ic{background:var(--em-100);color:var(--em-700)}.plan-bar{background:var(--ink-100);border-radius:999px;height:6px;margin-top:16px;overflow:hidden}.plan-bar .fill{background:var(--ai-grad);border-radius:999px;height:100%;transition:width .35s}.team-row{border-bottom:1px solid var(--border);color:var(--ink-700);text-transform:uppercase;letter-spacing:.06em;background:linear-gradient(#f8fafc 0%,#f1f5f9 100%);grid-column:1/-1;align-items:center;gap:10px;padding:10px 16px;font-size:11.5px;font-weight:600;display:flex;position:sticky;left:0}.team-row .badge{background:var(--paper);border:1px solid var(--border);color:var(--ink-600);text-transform:none;letter-spacing:0;font-feature-settings:"tnum";border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:500}.team-row .dot{border-radius:999px;width:8px;height:8px}.team-row .meta{color:var(--ink-500);text-transform:none;letter-spacing:0;font-feature-settings:"tnum";margin-left:auto;font-size:11px;font-weight:500}.team-chips{background:var(--ink-100);border-radius:8px;gap:4px;padding:3px;display:inline-flex}.team-chips button{color:var(--ink-600);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:5px;padding:4px 10px;font-family:inherit;font-size:12px;font-weight:500}.team-chips button.on{background:var(--paper);color:var(--ink-900);font-weight:600;box-shadow:0 1px 2px #0f172a0f,0 0 0 1px #0f172a0a}.toast-stack{z-index:31;pointer-events:none;flex-direction:column;gap:8px;max-width:380px;display:flex;position:fixed;top:16px;right:16px}.toast{background:var(--paper);border:1px solid var(--border);border-radius:var(--r-lg);pointer-events:auto;color:var(--ink-800);align-items:flex-start;gap:10px;padding:12px 14px;font-size:13.5px;animation:.18s ease-out toast-in;display:flex;box-shadow:0 12px 32px #0f172a24}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.toast-success{border-left:3px solid var(--em-500)}.toast-error{border-left:3px solid var(--rd-500)}.toast-info{border-left:3px solid var(--bl-500)}.toast-icon{border-radius:999px;flex:0 0 18px;place-items:center;width:18px;height:18px;margin-top:1px;display:grid}.toast-success .toast-icon{background:var(--em-100);color:var(--em-700)}.toast-error .toast-icon{background:var(--rd-100);color:var(--rd-700)}.toast-info .toast-icon{background:var(--bl-100);color:var(--bl-700)}.toast-body{flex:1;min-width:0;line-height:1.4}.toast-title{color:var(--ink-900);margin-bottom:2px;font-size:13.5px;font-weight:600}.toast-msg{color:var(--ink-700);word-break:break-word;font-size:13px}.toast-close{cursor:pointer;width:22px;height:22px;color:var(--ink-400);background:0 0;border:none;border-radius:4px;flex:0 0 22px;place-items:center;padding:0;display:grid}.toast-close:hover{background:var(--ink-100);color:var(--ink-700)}.ui-modal-backdrop{z-index:30;background:#0f172a73;place-items:center;padding:16px;animation:.15s ease-out backdrop-in;display:grid;position:fixed;inset:0}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.ui-modal{background:var(--paper);border-radius:var(--r-lg);width:100%;max-width:420px;padding:22px;animation:.18s ease-out modal-in;box-shadow:0 20px 50px #0f172a40}@keyframes modal-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ui-modal-title{color:var(--ink-900);margin-bottom:8px;font-size:15px;font-weight:700}.ui-modal-msg{color:var(--ink-700);margin-bottom:16px;font-size:13.5px;line-height:1.5}.ui-modal-input{border:1px solid var(--border);border-radius:var(--r-md);width:100%;color:var(--ink-900);background:var(--paper);box-sizing:border-box;margin-bottom:4px;padding:10px 12px;font-family:inherit;font-size:13.5px}.ui-modal-input:focus{border-color:var(--em-500);box-shadow:0 0 0 3px var(--em-100);outline:none}.ui-modal-err{color:var(--rd-600);margin:4px 0 8px;font-size:12px}.ui-modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.btn.danger{background:var(--rd-600);color:#fff;border-color:var(--rd-600)}.btn.danger:hover{background:var(--rd-700);border-color:var(--rd-700)}.ui-skeleton{background:linear-gradient(90deg, var(--ink-100) 0%, var(--ink-200) 50%, var(--ink-100) 100%);background-size:200% 100%;animation:1.4s ease-in-out infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ui-empty{text-align:center;color:var(--ink-500);flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;display:flex}.ui-empty-icon{background:var(--ink-100);border-radius:999px;place-items:center;width:48px;height:48px;margin-bottom:12px;display:grid}.ui-empty-title{color:var(--ink-800);margin-bottom:4px;font-size:14px;font-weight:600}.ui-empty-msg{color:var(--ink-500);max-width:280px;margin-bottom:12px;font-size:13px;line-height:1.5}.ui-empty-action{margin-top:4px}.calendar{background:var(--bg);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.cal-toolbar{border-bottom:1px solid var(--border);background:var(--paper);flex-wrap:wrap;align-items:center;gap:10px;padding:14px 22px;display:flex}.cal-toolbar .week-nav{align-items:center;gap:4px;display:flex}.cal-toolbar .iconbtn{border:1px solid var(--border);background:var(--paper);width:30px;height:30px;color:var(--ink-700);cursor:pointer;border-radius:7px;place-items:center;display:grid}.cal-toolbar .iconbtn:hover{background:var(--ink-50)}.cal-month-label{color:var(--ink-900);letter-spacing:-.02em;margin:0 6px 0 4px;font-size:15px;font-weight:600}.cal-toolbar .sub{color:var(--ink-500);font-size:12px;font-weight:500}.cal-summary{border-bottom:1px solid var(--border);background:var(--paper);padding:0 22px;display:flex}.cal-grid-wrap{flex-direction:column;flex:1;padding:14px 22px 22px;display:flex;overflow:auto}.cal-dow{grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px;display:grid}.cal-dow-cell{color:var(--ink-400);text-transform:uppercase;letter-spacing:.05em;text-align:center;padding:2px 0;font-size:11px;font-weight:600}.cal-grid{flex:1;grid-template-rows:repeat(6,minmax(96px,1fr));gap:6px;display:grid}.cal-week{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cal-cell{background:var(--paper);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;flex-direction:column;gap:4px;min-height:0;padding:6px 7px;transition:border-color .12s,box-shadow .12s;display:flex;position:relative}.cal-cell:hover{border-color:var(--border-strong);box-shadow:var(--sh-sm)}.cal-cell.out{background:var(--ink-50);opacity:.6}.cal-cell.weekend{background:#fcfcfb}.cal-cell.today{border-color:var(--em-500);box-shadow:0 0 0 1px var(--em-500) inset}.cal-cell-head{justify-content:space-between;align-items:center;gap:4px;display:flex}.cal-cell-date{color:var(--ink-700);font-feature-settings:"tnum";font-size:12.5px;font-weight:600}.cal-cell.out .cal-cell-date{color:var(--ink-400)}.cal-cell-date.today{background:var(--em-500);color:#fff;border-radius:999px;place-items:center;width:20px;height:20px;font-size:11.5px;display:grid}.cal-cell-leave-dot{color:var(--bl-700);background:#dbeafe;border-radius:999px;align-items:center;gap:2px;padding:1px 5px;font-size:10px;font-weight:600;display:inline-flex}.cal-cell-shifts{flex-direction:column;gap:3px;display:flex;overflow:hidden}.cal-chip{background:var(--ink-50);white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:2px 5px;font-size:11px;display:flex;overflow:hidden}.cal-chip-dot{border-radius:999px;flex:0 0 6px;width:6px;height:6px}.cal-chip-time{color:var(--ink-700);font-feature-settings:"tnum";font-weight:600}.cal-chip-name{color:var(--ink-600);text-overflow:ellipsis;overflow:hidden}.cal-chip.open{background:var(--rd-50)}.cal-chip.open .cal-chip-name{color:var(--rd-600);font-weight:600}.cal-chip.viol{box-shadow:0 0 0 1px var(--rd-200) inset}.cal-chip.more{color:var(--ink-500);background:0 0;justify-content:center;padding:0 5px;font-weight:500}.cal-cell-add{border:1px solid var(--border);background:var(--paper);width:20px;height:20px;color:var(--ink-500);cursor:pointer;border-radius:5px;place-items:center;display:none;position:absolute;bottom:5px;right:5px}.cal-cell:hover .cal-cell-add{display:grid}.cal-cell-add:hover{background:var(--em-50);color:var(--em-600);border-color:var(--em-200)}.cal-day-overlay{z-index:19;background:#0f172a59;position:fixed;inset:0}.cal-day-panel{background:var(--paper);border-left:1px solid var(--border);z-index:20;flex-direction:column;width:380px;max-width:90vw;height:100%;animation:.18s ease-out cal-slide-in;display:flex;position:fixed;top:0;right:0;box-shadow:-8px 0 32px #0f172a1f}@keyframes cal-slide-in{0%{opacity:.4;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.cal-day-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:10px;padding:18px 20px;display:flex}.cal-day-title{color:var(--ink-900);font-size:15px;font-weight:700}.cal-day-sub{color:var(--ink-500);margin-top:3px;font-size:12px}.cal-day-body{flex:1;padding:16px 20px;overflow-y:auto}.cal-day-empty{text-align:center;color:var(--ink-400);padding:40px 0;font-size:13px}.cal-day-section{margin-bottom:18px}.cal-day-section-h{color:var(--ink-500);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:11px;font-weight:600}.cal-day-shift{border-radius:var(--r-md);align-items:center;gap:10px;padding:9px 8px;display:flex;position:relative}.cal-day-shift.editable{cursor:pointer}.cal-day-shift.editable:hover{background:var(--ink-50)}.cal-day-shift .state-dot{border-radius:2px;width:3px;height:24px;position:absolute;top:12px;left:0}.cal-day-shift-name{color:var(--ink-900);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.cal-day-shift-meta{color:var(--ink-500);align-items:center;gap:4px;margin-top:1px;font-size:11.5px;display:flex}.cal-viol{color:var(--rd-600);display:inline-flex}.cal-day-leave{border-radius:var(--r-md);align-items:center;gap:8px;margin-bottom:5px;padding:8px 10px;display:flex}.cal-day-leave-name{color:var(--ink-800);flex:1;font-size:12.5px;font-weight:600}.cal-day-leave-type{font-size:11px;font-weight:600}.cal-day-foot{border-top:1px solid var(--border);padding:14px 20px}:focus-visible{outline:2px solid var(--em-600);outline-offset:2px;border-radius:2px}
