:root{--bg: #ffffff;--card: #ffffff;--border: #e6e8ec;--text: #0a0a0a;--muted: #6e6e73;--blue-900: #00006F;--blue-700: #00209A;--blue: #0046CC;--blue-500: #0046CC;--blue-400: #6690E0;--blue-200: #B3C8F0;--cyan: #00FFFF;--primary: var(--blue);--s-presence: #16A34A;--s-trip: #1E3A8A;--s-remote: var(--blue);--s-milan: #EA580C;--s-out: #DC2626;--s-available: #EAB308;--s-rovereto: #7C3AED;--s-empty: #f4f5f7;--shadow: 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 2px 8px rgba(0,0,70,.06);--shadow-lg: 0 12px 40px rgba(0,32,154,.12);--radius-sm: 2px;--radius-md: 4px;--radius-lg: 8px;--radius-dot: 9999px;--font-display: "IBM Plex Mono", "JetBrains Mono", "Menlo", "Lucida Console", monospace;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Calibri", Helvetica, Arial, sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--bottom-nav-h: 56px}html,body{margin:0;padding:0;font-family:var(--font-body);font-size:14px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:var(--radius-sm);box-shadow:0 0 0 4px #0046cc2e}.skip-link{position:absolute;top:-100px;left:12px;z-index:9999;background:var(--blue-900);color:#fff;padding:10px 16px;font-family:var(--font-display);font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;border-radius:var(--radius-sm);border-top:2px solid var(--cyan);box-shadow:var(--shadow-lg);transition:top .18s ease}.skip-link:focus,.skip-link:focus-visible{top:12px;outline:2px solid var(--cyan);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.brand-dot{display:inline-block;width:4px;height:4px;margin:0 8px;background:var(--cyan);border-radius:50%;vertical-align:middle}.icons-logo{display:inline-block;height:22px;color:var(--blue);line-height:1}.icons-logo svg{height:100%;width:auto;display:block;fill:currentColor}.icons-logo.lg{height:34px}.icons-logo.on-dark{color:#fff}.bg-pattern{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}.bg-pattern svg{position:absolute;width:900px;height:900px;opacity:.1}.bg-pattern .c-tl{top:-360px;left:-360px}.bg-pattern .c-br{bottom:-400px;right:-360px;opacity:.08}.bg-pattern circle{fill:none;stroke:var(--blue);stroke-width:1}.bg-pattern circle.accent{stroke:var(--cyan);stroke-width:1.2}.bg-pattern circle.dot{fill:var(--blue);stroke:none}.app .bg-pattern,.login-wrap>.bg-pattern{z-index:0}.app>.top,.app>.admin-banner,.app>.main,.login-card{position:relative;z-index:2}.app{display:flex;flex-direction:column;min-height:100vh;position:relative;overflow:hidden;background:var(--bg)}.main{flex:1;padding:24px 32px 48px;max-width:1400px;width:100%;margin:0 auto}.top{background:var(--card);border-bottom:1px solid var(--border);padding:18px 32px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:5}.brand{display:flex;align-items:center;gap:18px;color:var(--text)}.brand .icons-logo{height:24px}.brand-sep{display:inline-block;width:1px;height:18px;background:var(--border)}.brand .brand-sub{font-family:var(--font-display);font-weight:500;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.14em}.user-box{display:flex;align-items:center;gap:14px}.avatar{width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px}.user-box .me{display:flex;flex-direction:column;line-height:1.2}.user-box .me strong{font-size:13px}.user-box .me em{font-style:normal;font-size:11px;color:var(--muted)}.admin-badge{display:inline-block;margin-left:6px;padding:1px 6px;background:#0046cc1a;color:var(--blue);font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;border-radius:3px;vertical-align:middle}.user-box button{border:1px solid var(--border);background:#fff;color:var(--muted);padding:9px 14px;border-radius:var(--radius-sm);font-family:var(--font-display);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.14em;cursor:pointer;transition:border-color .15s,color .15s}.user-box button:hover{border-color:var(--text);color:var(--text)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(900px 500px at 85% -10%,rgba(0,70,204,.08),transparent 60%),radial-gradient(700px 500px at -5% 110%,rgba(0,70,204,.05),transparent 60%),#fff;position:relative;overflow:hidden}.login-wrap>.bg-pattern{position:absolute;inset:0}.login-card{background:var(--card);border:1px solid var(--border);padding:48px 44px;max-width:460px;width:100%;box-shadow:var(--shadow-lg);border-radius:var(--radius-md);position:relative;z-index:2}.login-logo{display:flex;align-items:center;gap:14px;margin-bottom:32px}.login-logo .icons-logo{height:30px}.login-logo .tag{font-family:var(--font-display);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);border-left:1px solid var(--border);padding-left:14px}.login-card .kicker{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:var(--blue);margin-bottom:12px;font-weight:500}.login-card h1{font-family:var(--font-display);font-size:28px;letter-spacing:-.01em;margin:0 0 12px}.login-card p{margin:0 0 24px;color:var(--muted);font-size:13px;line-height:1.55}.login-card label{display:block;font-family:var(--font-display);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:6px}.login-card input[type=email],.login-card input[type=password]{width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:14px;margin-bottom:4px}.login-card input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #0046cc1f}.login-card button[type=submit]{margin-top:18px;width:100%;padding:14px 16px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.14em;cursor:pointer;transition:background .15s}.login-card button[type=submit]:hover:not(:disabled){background:var(--blue-700)}.login-card button[type=submit]:disabled{opacity:.6;cursor:wait}.login-extra{margin-top:10px;text-align:center}.login-extra a{color:var(--blue);text-decoration:none;font-family:var(--font-display);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.1em}.login-extra a:hover{text-decoration:underline}.login-card .opt-tag{color:var(--muted);font-size:9px;font-weight:400;text-transform:uppercase;letter-spacing:.08em;margin-left:6px}.login-hint{margin-top:16px;font-size:11px;color:var(--muted);text-align:center;line-height:1.5}.demo-btn{margin-top:10px;width:100%;background:transparent;color:var(--blue);border:1px dashed var(--blue);padding:11px 14px;border-radius:var(--radius-sm);font-family:var(--font-display);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.14em}.demo-btn:hover{background:#0046cc0f}.dev-banner{margin-top:14px;padding:10px 12px;border-radius:var(--radius-sm);background:#fff7e6;border:1px solid #fcd9a1;color:#8a5a00;font-size:12px;line-height:1.5}.view-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:18px}.view-tabs button{background:transparent;border:none;padding:14px 22px 12px;font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid transparent;display:inline-flex;align-items:center;gap:8px;transition:color .12s}.view-tabs button:before{content:"";width:6px;height:6px;border-radius:50%;background:transparent;transition:background .12s}.view-tabs button.active{color:var(--blue);border-bottom-color:var(--cyan);border-bottom-width:2px}.view-tabs button.active:before{background:var(--cyan);box-shadow:0 0 0 1px var(--blue)}.view-tabs button:hover{color:var(--text)}.view-tabs .tab-icon{display:none}.view-tabs .tab-label{white-space:nowrap}.month-bar{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px 18px;margin-bottom:20px;position:relative;box-shadow:var(--shadow)}.year-switch{display:flex;gap:0;margin-bottom:12px;border:1px solid var(--border);border-radius:var(--radius-sm);width:fit-content;overflow:hidden}.year-switch button{padding:8px 18px;border:none;background:#fff;cursor:pointer;font-size:11px;font-weight:500;color:var(--muted);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;border-right:1px solid var(--border)}.year-switch button:last-child{border-right:none}.year-switch button.active{background:var(--blue);color:#fff}.month-tabs{display:flex;flex-wrap:wrap;gap:6px}.month-tabs button{padding:6px 14px;border:1px solid var(--border);background:#fff;border-radius:var(--radius-sm);font-size:12px;color:var(--muted);font-family:var(--font-display);letter-spacing:.04em}.month-tabs button.active{background:var(--blue);color:#fff;border-color:var(--blue)}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%);padding:10px 18px;background:var(--text);color:#fff;border-radius:999px;font-size:13px;z-index:999;opacity:0;transition:opacity .15s,transform .15s;pointer-events:none}.toast.open{opacity:1;transform:translate(-50%) translateY(-4px)}@media (max-width: 720px){.top{padding:10px max(14px,var(--safe-left)) 10px max(14px,var(--safe-right));padding-top:max(10px,var(--safe-top));flex-wrap:wrap;gap:10px}.brand-sub{display:none}.user-box{gap:8px}.user-box .avatar{width:34px;height:34px;font-size:11px}.user-box .me strong{font-size:13px}.user-box .me em{font-size:11px}.user-box button{min-height:36px;padding:8px 14px;font-size:12px;touch-action:manipulation}.main{padding-left:max(14px,var(--safe-left));padding-right:max(14px,var(--safe-right));padding-top:12px;padding-bottom:calc(var(--bottom-nav-h) + var(--safe-bottom) + 20px)}.view-tabs{position:fixed;bottom:0;left:0;right:0;margin:0;z-index:50;height:calc(var(--bottom-nav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);padding-right:var(--safe-right);background:#fffffff5;backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-top:1px solid var(--border);border-bottom:none;box-shadow:0 -2px 8px #0000000a;display:flex;flex-wrap:nowrap;overflow:visible}.view-tabs button{flex:1 1 0;min-width:0;height:var(--bottom-nav-h);padding:6px 4px 4px;border:none;border-bottom:none;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;letter-spacing:.04em;text-transform:none;transition:color .12s;touch-action:manipulation;position:relative}.view-tabs button:before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;width:auto;background:transparent;border-radius:0 0 3px 3px;transition:background .12s;box-shadow:none}.view-tabs button.active{color:var(--blue);border-bottom:none}.view-tabs button.active:before{background:var(--cyan);box-shadow:inset 0 -1px 0 var(--blue)}.view-tabs .tab-icon{display:block;font-size:20px;line-height:1;filter:grayscale(.15)}.view-tabs button.active .tab-icon{filter:grayscale(0)}.view-tabs .tab-label{display:block;font-family:var(--font-display);font-size:9.5px;font-weight:500;letter-spacing:.04em;line-height:1.1;text-transform:none;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:100%}.month-bar{position:sticky;top:0;z-index:20;padding:8px 10px;margin-bottom:14px;border-radius:var(--radius-md);background:#fffffff2;backdrop-filter:saturate(180%) blur(8px);-webkit-backdrop-filter:saturate(180%) blur(8px)}.year-switch{margin-bottom:8px;width:100%;justify-content:stretch}.year-switch button{flex:1;min-height:36px;padding:8px 10px;font-size:11px;touch-action:manipulation}.month-tabs{gap:4px}.month-tabs button{min-height:32px;padding:6px 8px;font-size:10px;touch-action:manipulation}input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],input[type=date],input[type=tel],input[type=url],textarea,select{font-size:16px}.skip-link:focus,.skip-link:focus-visible{top:max(8px,var(--safe-top));left:max(8px,var(--safe-left));right:max(8px,var(--safe-right));padding:10px 14px;font-size:12px}.closure-banner,.admin-banner{margin:12px max(14px,var(--safe-left)) 0 max(14px,var(--safe-right));padding:10px 12px;font-size:12px;flex-wrap:wrap}.closure-banner-icon{font-size:18px}.closure-banner-dismiss{margin-top:8px;width:100%;min-height:36px;text-align:center;touch-action:manipulation}.toast{bottom:calc(var(--bottom-nav-h) + var(--safe-bottom) + 12px);left:max(14px,var(--safe-left));right:max(14px,var(--safe-right));max-width:calc(100vw - max(28px,var(--safe-left) + var(--safe-right)))}}.booting-overlay{position:fixed;inset:0;z-index:9000;background:#fffffff5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;padding-top:max(24px,env(safe-area-inset-top,0));padding-bottom:max(24px,env(safe-area-inset-bottom,0));animation:booting-fade-in .2s ease-out}.booting-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;max-width:340px}.booting-spinner{width:42px;height:42px;border:3px solid var(--border);border-top-color:var(--blue);border-right-color:var(--blue);border-radius:50%;animation:booting-spin .9s linear infinite}.booting-text{font-family:var(--font-display);font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text);margin-top:4px}.booting-sub{font-size:12px;color:var(--muted);line-height:1.45}@keyframes booting-spin{to{transform:rotate(360deg)}}@keyframes booting-fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.booting-spinner,.booting-overlay{animation:none}}.modal-backdrop{display:none;position:fixed;inset:0;background:#0006;align-items:center;justify-content:center;z-index:200;padding:20px}.modal-backdrop.open{display:flex}.modal{background:var(--card);border-radius:var(--radius-md);padding:28px;max-width:540px;width:100%;box-shadow:var(--shadow-lg)}.modal h3{margin:0 0 4px;font-family:var(--font-display)}.modal-date{color:var(--muted);font-size:13px;margin-bottom:18px}.modal-intro{margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.5}.modal label{display:block;font-family:var(--font-display);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:6px}.modal input[type=password],.modal input[type=text],.modal textarea{width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:14px;margin-bottom:10px}.modal textarea{resize:vertical;min-height:70px}.modal-actions{margin-top:18px;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.modal-primary{padding:9px 18px;border:1px solid var(--blue);background:var(--blue);color:#fff;border-radius:var(--radius-sm);font-family:inherit;font-weight:600;font-size:13px}.modal-primary:hover:not(:disabled){background:var(--blue-700)}.modal-primary:disabled{opacity:.5;cursor:not-allowed}.modal-secondary{padding:9px 18px;border:1px solid var(--border);background:#fff;color:var(--muted);border-radius:var(--radius-sm);font-family:inherit;font-size:13px}.modal-secondary:hover{border-color:var(--text);color:var(--text)}.modal-secondary.clear-btn{color:var(--s-out);border-color:#d6282866}.modal-secondary.clear-btn:hover{background:#d628280f}.checkbox-row{display:flex!important;align-items:center;gap:10px;font-size:13px;color:var(--text);text-transform:none!important;letter-spacing:0!important;font-weight:400!important}.meeting-desc-field{margin:8px 0 0 26px;padding:10px 12px;background:#0046cc0a;border-left:2px solid var(--cyan);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.meeting-desc-field label{display:block;font-family:var(--font-display);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.meeting-desc-field input[type=text]{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:13px}.meeting-desc-field input[type=text]:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #0046cc1f}.meeting-desc-field .hint{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.4}.status-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-bottom:8px}.status-grid button{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);background:#fff;border-radius:var(--radius-sm);font-size:12px;text-align:left}.status-grid button.active{border-color:var(--blue);background:#0046cc0f}.status-grid .swatch{width:14px;height:14px;border-radius:3px;flex-shrink:0}.swatch.s-P{background:var(--s-presence)}.swatch.s-T{background:var(--s-trip)}.swatch.s-R{background:var(--s-remote)}.swatch.s-M{background:var(--s-milan)}.swatch.s-O{background:var(--s-out)}.swatch.s-A{background:var(--s-available)}.swatch.s-V{background:var(--s-rovereto)}.pw-strength{margin:0 0 14px}.pw-strength-bar{height:4px;background:#eef0f4;border-radius:2px;overflow:hidden;margin-bottom:6px}.pw-strength-fill{height:100%;width:0%;background:var(--s-out);transition:width .15s,background .15s}.pw-strength-fill.s-weak{background:var(--s-out);width:25%}.pw-strength-fill.s-fair{background:#eab308;width:50%}.pw-strength-fill.s-good{background:#22c55e;width:75%}.pw-strength-fill.s-strong{background:#16a34a;width:100%}.pw-strength-label{font-size:11px;color:var(--muted);font-family:var(--font-display);letter-spacing:.06em}.pw-mismatch{color:var(--s-out);font-size:12px;margin:-4px 0 8px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px;margin-bottom:14px}.card h3{margin:0 0 12px;font-family:var(--font-display);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.card .hint{font-size:11px;color:var(--muted);margin-top:8px}.actas-card select{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;font-size:13px}.admin-banner{background:linear-gradient(90deg,#0046cc,#0035a0);color:#fff;padding:10px 32px;display:flex;align-items:center;gap:10px;font-size:13px;position:relative;z-index:4}.admin-banner .dot{width:8px;height:8px;border-radius:50%;background:#27d0ff;box-shadow:0 0 0 3px #27d0ff40;flex-shrink:0}.admin-banner strong{font-weight:600}.admin-banner .who{margin-left:auto;opacity:.85;font-family:var(--font-display);font-size:11px;letter-spacing:.06em}.shortcut-btns{display:flex;flex-direction:column;gap:6px}.shortcut-btns button{padding:10px 14px;border:1px solid var(--border);background:#fff;border-radius:var(--radius-sm);font-family:var(--font-display);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;text-align:left;color:var(--text);transition:all .12s}.shortcut-btns button:hover{border-color:var(--text);background:var(--text);color:#fff}.shortcut-btns button.danger{color:#a5231b;border-color:#e8b5b0}.shortcut-btns button.danger:hover{background:#a5231b;border-color:#a5231b;color:#fff}.month-summary .summary-list{list-style:none;margin:12px 0 0;padding:0}.month-summary .summary-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:9px 0;border-bottom:1px solid var(--border)}.month-summary .summary-row:last-child{border-bottom:none}.month-summary .summary-row b{font-family:var(--font-display);font-size:14px;font-weight:500;color:var(--text)}.month-summary .summary-label{display:flex;align-items:center;gap:9px;color:var(--text)}.month-summary .summary-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.month-summary .summary-dot.s-P{background:var(--s-presence)}.month-summary .summary-dot.s-T{background:var(--s-trip)}.month-summary .summary-dot.s-R{background:var(--s-remote)}.month-summary .summary-dot.s-M{background:var(--s-milan)}.month-summary .summary-dot.s-O{background:var(--s-out)}.month-summary .summary-dot.s-A{background:var(--s-available)}.month-summary .summary-dot.s-V{background:var(--s-rovereto)}.paint-btns{display:flex;flex-direction:column;gap:6px}.paint-btns button{display:flex;align-items:center;gap:9px;padding:9px 11px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);text-align:left;font-size:13px}.paint-btns button.active{border-color:var(--blue);background:#0046cc0f}.paint-btns button .swatch{width:14px;height:14px;border-radius:3px}.paint-btns button.s-P .swatch{background:var(--s-presence)}.paint-btns button.s-T .swatch{background:var(--s-trip)}.paint-btns button.s-R .swatch{background:var(--s-remote)}.paint-btns button.s-M .swatch{background:var(--s-milan)}.paint-btns button.s-O .swatch{background:var(--s-out)}.paint-btns button.s-A .swatch{background:var(--s-available)}.paint-btns button.s-V .swatch{background:var(--s-rovereto)}.me-tag{background:var(--primary);color:#fff;font-size:9px;padding:1px 5px;border-radius:3px;margin-left:4px;text-transform:uppercase;letter-spacing:.1em}.former-tag{background:#f0f1f3;color:var(--muted);font-size:9px;font-weight:600;padding:2px 6px;border-radius:3px;margin-left:6px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border)}.access-cell{text-align:center}.access-pill{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:999px;padding:4px 11px;font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:#fff;min-width:110px;justify-content:center;white-space:nowrap}.access-pill.access-admin{background:#0046cc1a;color:var(--blue);border-color:#0046cc40}.access-pill.access-admin:hover{background:var(--blue);color:#fff}.access-pill.access-user{color:var(--muted)}.access-pill.access-user:hover{background:var(--blue);color:#fff;border-color:var(--blue)}.access-pill.access-none{cursor:default;color:var(--muted);background:#f7f7f8;border-style:dashed}.access-pill.access-super{background:linear-gradient(180deg,var(--cyan),#58e6e6);color:var(--blue-900);border-color:var(--blue-700);font-weight:600}.access-pill.access-locked{cursor:not-allowed;opacity:.55}.access-pill.access-super.access-locked{opacity:.92}.dir-import-btn{padding:8px 14px;border:1px solid var(--blue);background:#fff;color:var(--blue);font-family:var(--font-display);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;border-radius:var(--radius-sm);cursor:pointer;transition:all .12s}.dir-import-btn:hover{background:var(--blue);color:#fff}.modal.modal-wide{max-width:720px}.import-picker{padding:22px;background:#0046cc0a;border:1px dashed var(--blue);border-radius:var(--radius-md);text-align:center;margin-top:8px}.import-picker input[type=file]{margin:0 auto 12px;display:block}.import-picker .hint{font-size:12px;color:var(--muted);line-height:1.55}.import-picker .hint code{background:#fff;padding:1px 5px;border-radius:2px;font-size:11.5px;border:1px solid var(--border)}.import-error{margin-top:12px;padding:10px 12px;background:#fdf2f2;border-left:3px solid var(--s-out);color:var(--s-out);font-size:13px}.import-error-block{font-size:13px;color:var(--text);background:#fff5f5}.import-error-block strong{color:var(--s-out)}.import-error-block pre{margin:8px 0;padding:8px 10px;background:#fff;border:1px solid #f5b3b3;border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-display);white-space:pre-wrap;word-break:break-word;color:var(--text);max-height:180px;overflow-y:auto}.import-error-block .hint{font-size:12px;color:var(--muted);margin-top:6px}.import-noop{padding:18px;background:#16a34a0f;border-left:3px solid var(--s-presence);color:var(--s-presence);font-size:14px;font-weight:500;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.import-meta{margin:8px 0 14px;padding:8px 12px;background:#0046cc0d;border-left:2px solid var(--blue);font-size:12px;color:var(--muted)}.import-meta code{background:#fff;padding:1px 5px;border-radius:2px;font-size:11.5px;border:1px solid var(--border);color:var(--text)}.import-preview{margin-top:8px}.import-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.import-summary .badge{padding:5px 10px;border-radius:999px;font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:.06em}.import-summary .badge.add{background:#16a34a1f;color:var(--s-presence)}.import-summary .badge.update{background:#0046cc1a;color:var(--blue)}.import-summary .badge.former{background:#dc26261a;color:var(--s-out)}.import-summary .badge.reactivate{background:#00ffff2e;color:var(--blue-900)}.import-preview details{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:8px}.import-preview details summary{cursor:pointer;font-family:var(--font-display);font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--text)}.import-preview .hint{font-size:12px;color:var(--muted);margin:6px 0 8px;line-height:1.5}.import-list{margin:8px 0 0;padding-left:20px;font-size:13px;max-height:220px;overflow-y:auto}.import-list li{margin-bottom:4px;line-height:1.5}.import-list .email-derived{margin-left:8px;font-size:11px;color:var(--muted);font-family:var(--font-display)}.import-changes{margin:4px 0 0 16px;padding-left:0;list-style:none;font-size:12px;color:var(--muted)}.import-changes li{font-family:var(--font-display);letter-spacing:.02em}.closure-banner{display:flex;align-items:flex-start;gap:14px;margin:18px 32px 0;padding:14px 18px;background:linear-gradient(180deg,#fef3f2,#fee2e2);border:1px solid #f5b3b3;border-left:4px solid var(--s-out);border-radius:var(--radius-md)}.closure-banner-icon{font-size:22px;line-height:1;padding-top:2px}.closure-banner-body{flex:1;min-width:0}.closure-banner-title{font-family:var(--font-display);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--s-out);margin-bottom:6px}.closure-banner-list{margin:0;padding-left:0;list-style:none;font-size:13px;line-height:1.6;color:var(--text)}.closure-banner-list li{display:flex;align-items:center;gap:8px}.closure-banner-label{color:var(--muted)}.closure-banner-dismiss-one{margin-left:auto;background:transparent;border:1px solid transparent;color:var(--muted);font-size:16px;line-height:1;width:22px;height:22px;border-radius:50%;cursor:pointer;transition:background .12s,color .12s}.closure-banner-dismiss-one:hover{background:#dc26261a;color:var(--s-out)}.closure-banner-dismiss{align-self:flex-start;padding:6px 12px;border:1px solid var(--s-out);background:#fff;color:var(--s-out);font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer}.closure-banner-dismiss:hover{background:var(--s-out);color:#fff}.closures-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:22px 24px;margin-bottom:22px}.closures-head h3{margin:0 0 4px;font-family:var(--font-display);font-size:16px;font-weight:600;letter-spacing:.04em;color:var(--text)}.closures-intro{margin:0 0 16px;font-size:13px;color:var(--muted);line-height:1.55;max-width:640px}.closures-form{display:grid;grid-template-columns:180px 1fr auto;gap:12px;align-items:end;margin-bottom:18px;padding:14px;background:#0046cc0a;border-left:2px solid var(--cyan);border-radius:0 var(--radius-sm) var(--radius-sm) 0}@media (max-width: 720px){.closures-form{grid-template-columns:1fr}}.closures-field{display:flex;flex-direction:column;gap:6px}.closures-field span{font-family:var(--font-display);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.closures-field input{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:13px;background:#fff}.closures-field input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #0046cc1f}.closures-add-btn{padding:9px 16px;border:1px solid var(--blue);background:var(--blue);color:#fff;font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;height:38px}.closures-add-btn:hover:not(:disabled){background:var(--blue-700)}.closures-add-btn:disabled{opacity:.6;cursor:wait}.closures-section{margin-top:14px}.closures-section-title{margin:0 0 8px;font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.closures-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--border)}.closures-row{display:flex;align-items:center;gap:14px;padding:10px 4px;border-bottom:1px solid var(--border);font-size:13px}.closures-day{font-family:var(--font-display);font-weight:500;color:var(--text);min-width:200px}.closures-label{flex:1;color:var(--muted)}.closures-list-past .closures-row{opacity:.7}.closures-remove{background:transparent;border:1px solid var(--border);color:var(--muted);width:24px;height:24px;border-radius:50%;font-size:14px;line-height:1;cursor:pointer;transition:all .12s}.closures-remove:hover{border-color:var(--s-out);color:var(--s-out);background:#dc262614}.closures-empty{padding:20px;background:#0046cc0a;border-radius:var(--radius-sm);font-size:13px;color:var(--muted);text-align:center;line-height:1.55}.closures-more{margin-top:8px;font-size:12px;color:var(--muted);font-style:italic}@media (max-width: 720px){.login-wrap{padding:max(16px,var(--safe-left)) max(16px,var(--safe-right));padding-top:max(24px,calc(var(--safe-top) + 12px));padding-bottom:max(24px,calc(var(--safe-bottom) + 12px));align-items:flex-start}.login-card{padding:28px 22px;max-width:100%}.login-card .login-logo .icons-logo{height:28px}.login-card h1{font-size:24px}.login-card .kicker{font-size:10px}.login-card p{font-size:14px;line-height:1.55}.login-card label{font-size:11px}.login-card input{padding:12px 14px;border-radius:var(--radius-sm)}.login-card button[type=submit]{min-height:48px;padding:14px 16px;font-size:13px;touch-action:manipulation;margin-top:6px}.login-extra{padding:10px 0}.login-extra a{display:inline-block;min-height:32px;padding:6px 4px;touch-action:manipulation}.demo-btn{font-size:11px;padding:12px;min-height:44px}.modal-backdrop{padding:0;align-items:flex-end;animation:bsBackdrop .16s ease-out}.modal{width:100%;max-width:100%;max-height:92vh;border-radius:16px 16px 0 0;overflow-y:auto;padding:14px max(16px,var(--safe-left)) calc(20px + var(--safe-bottom)) max(16px,var(--safe-right));position:relative;animation:bsSlide .22s cubic-bezier(.2,.7,.2,1)}.modal:before{content:"";display:block;width:36px;height:4px;background:var(--border);border-radius:2px;margin:0 auto 12px}.modal h3{font-size:18px}.modal-date{font-size:12px}.modal label{font-size:11px}.modal textarea,.modal input[type=text],.modal input[type=password]{padding:11px 13px;border-radius:var(--radius-sm)}.status-grid{grid-template-columns:1fr 1fr;gap:8px}.status-grid button{min-height:48px;padding:10px 12px;font-size:13px;touch-action:manipulation}.modal-actions{flex-wrap:wrap;gap:8px;padding-top:4px}.modal-actions button{flex:1 1 calc(50% - 4px);min-height:46px;padding:12px;font-size:13px;touch-action:manipulation}.modal-actions .clear-btn{flex:1 1 100%;order:99}@keyframes bsSlide{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes bsBackdrop{0%{background:#0000}to{background:#0006}}.closures-panel{padding:16px 14px}.closures-head h3{font-size:14px}.closures-intro{font-size:12px}.closures-form{padding:10px}.closures-add-btn{width:100%;height:auto;padding:11px}.closures-row{flex-wrap:wrap;gap:6px 12px;padding:10px 4px}.closures-day{min-width:0;flex:1 1 100%;font-size:12px}.closures-label{font-size:12px;flex:1 1 100%}.closures-remove{margin-left:auto}.modal.modal-wide{max-width:100%}.import-summary .badge{font-size:10px;padding:4px 8px}.import-list{font-size:12px;max-height:180px}.import-meta{font-size:11px;padding:8px 10px}}.my-layout{display:grid;grid-template-columns:300px 1fr;gap:20px}@media (max-width: 900px){.my-layout{grid-template-columns:1fr}}.my-main h2.my-title{font-family:var(--font-display);margin:0 0 18px;display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.my-month{font-size:24px;font-weight:500;letter-spacing:-.01em}.my-who-label{font-size:11px;font-weight:400;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.my-who-label strong{color:var(--text);font-weight:600;text-transform:none;letter-spacing:0}.my-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.wd-head{font-family:var(--font-display);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);text-align:center;padding:6px 0}.day-cell{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;min-height:78px;display:flex;flex-direction:column;cursor:pointer;font-size:12px;outline:none}.day-cell.empty{background:transparent;border:none;cursor:default}.day-cell.weekend{background:#f7f8fa;cursor:default}.day-cell.holiday{background-color:#0046cc06}.day-cell.holiday .holiday-tag{margin-top:4px;font-family:var(--font-display);font-size:9px;font-weight:500;letter-spacing:.06em;color:var(--blue);background:#0046cc14;padding:2px 6px;border-radius:var(--radius-sm);border-left:2px solid var(--blue);align-self:flex-start;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.my-month-grid{user-select:none;-webkit-user-select:none}.day-cell.closure{background-image:repeating-linear-gradient(-45deg,rgba(220,38,38,.08) 0,rgba(220,38,38,.08) 8px,transparent 8px,transparent 16px)}.day-cell.closure .closure-tag{margin-top:4px;font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--s-out);background:#dc26261a;padding:3px 7px;border-radius:var(--radius-sm);border-left:2px solid var(--s-out);align-self:flex-start}table.cal tbody td.day.closure{background-image:repeating-linear-gradient(-45deg,rgba(220,38,38,.1) 0,rgba(220,38,38,.1) 6px,transparent 6px,transparent 12px)}.status-legend{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:18px;padding:12px 16px;background:#0046cc0a;border-left:2px solid var(--cyan);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:.06em;color:var(--text);text-transform:uppercase}.status-legend .legend-item{display:inline-flex;align-items:center;gap:8px}.status-legend .legend-swatch{display:inline-block;width:14px;height:14px;border-radius:var(--radius-sm)}.status-legend .legend-swatch.s-P{background:var(--s-presence)}.status-legend .legend-swatch.s-T{background:var(--s-trip)}.status-legend .legend-swatch.s-R{background:var(--s-remote)}.status-legend .legend-swatch.s-M{background:var(--s-milan)}.status-legend .legend-swatch.s-O{background:var(--s-out)}.status-legend .legend-swatch.s-A{background:var(--s-available)}.status-legend .legend-swatch.s-V{background:var(--s-rovereto)}.status-legend .legend-divider{width:1px;height:18px;background:var(--border)}.status-legend .legend-busy{text-transform:none;letter-spacing:0;color:var(--muted);font-family:var(--font-body);font-size:12px}.status-legend .legend-busy-swatch{background:#0046cc1a;border:1px solid rgba(0,70,204,.25);border-radius:999px;width:22px;height:16px;position:relative}.status-legend .legend-busy-label{font-family:var(--font-display);font-size:11px;font-weight:600;color:var(--blue);margin-left:4px;padding:1px 6px;background:#0046cc1a;border-radius:999px}.day-cell.today{outline:2px solid var(--cyan);outline-offset:-2px;position:relative}.day-cell.today:after{content:"TODAY";position:absolute;top:0;right:0;background:var(--cyan);color:var(--blue-900);font-family:var(--font-display);font-size:9px;font-weight:700;letter-spacing:.1em;padding:2px 6px 2px 5px;border-bottom-left-radius:var(--radius-sm);pointer-events:none;z-index:3}.day-cell:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.day-cell .dnum{font-family:var(--font-display);font-size:11px;font-weight:600;color:var(--muted)}.day-cell .busy-label{position:absolute;top:6px;right:32px;display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:999px;background:#0046cc1a;color:var(--blue);font-family:var(--font-display);font-size:10px;font-weight:600;line-height:1}.day-cell .busy-label:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:-4px 0 0 -1px var(--blue)}.day-cell .busy-bar{position:absolute;bottom:0;left:0;right:0;height:3px;background:#eef0f4}.day-cell .busy-bar .fill{height:100%;border-radius:0}.busy-q1{background:#22c55e}.busy-q2{background:#eab308}.busy-q3{background:#f97316}.busy-q4{background:#dc2626}.day-cell.weekend .busy-bar,.day-cell.weekend .busy-label{display:none}.day-cell .edit-btn{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:none;background:#ffffffe6;color:var(--muted);display:none;align-items:center;justify-content:center;font-size:11px}.day-cell:hover .edit-btn{display:flex}.day-cell.weekend .busy-label{display:none}.status-chip{margin-top:auto;align-self:flex-start;padding:3px 8px;border-radius:var(--radius-sm);font-size:10px;font-weight:600;font-family:var(--font-display);letter-spacing:.06em;color:var(--text)}.status-chip.s-P,.status-chip.s-T,.status-chip.s-R,.status-chip.s-M,.status-chip.s-V,.status-chip.s-O{color:#fff}.status-chip.s-A{color:var(--text)}.status-chip.s-P{background:var(--s-presence)}.status-chip.s-T{background:var(--s-trip)}.status-chip.s-R{background:var(--s-remote)}.status-chip.s-M{background:var(--s-milan)}.status-chip.s-O{background:var(--s-out)}.status-chip.s-A{background:var(--s-available)}.status-chip.s-V{background:var(--s-rovereto)}.day-cell.filled.s-P{background:#16a34a12}.day-cell.filled.s-T{background:#1e3a8a12}.day-cell.filled.s-R{background:#0046cc0f}.day-cell.filled.s-M{background:#ea580c12}.day-cell.filled.s-O{background:#dc26260d}.day-cell.filled.s-A{background:#eab3081a}.day-cell.filled.s-V{background:#7c3aed14}.note-text{font-size:11px;color:var(--text);margin-top:4px;line-height:1.3}.calendar-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md)}.cal-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px}.cal-header h2{font-family:var(--font-display);margin:0;font-size:18px}.filter-bar{display:flex;gap:6px;flex-wrap:wrap}.filter-bar input,.filter-bar select{padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;font-size:12px;background:#fff}.filter-bar input:focus,.filter-bar select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #0046cc1f}.filter-bar .clear-filters{border:1px solid var(--border);background:#fff;border-radius:var(--radius-sm);padding:7px 14px;font-size:12px;color:var(--muted)}.cal-scroll{overflow:auto;max-height:calc(100vh - 220px);transition:max-height .18s ease}body.cal-scrolled .cal-scroll{max-height:calc(100vh - 140px)}.compact-toggle{border:1px solid var(--border);background:#fff;border-radius:var(--radius-sm);padding:7px 14px;font-size:12px;color:var(--muted);cursor:pointer;font-family:var(--font-display);font-weight:500;letter-spacing:.04em;transition:border-color .12s,color .12s,background .12s}.compact-toggle:hover{border-color:var(--blue);color:var(--blue)}.compact-toggle.active{background:var(--blue);color:#fff;border-color:var(--blue)}.cal-scroll-compact table.cal{font-size:11px}.cal-scroll-compact table.cal tbody td.name-cell{padding:2px 12px;min-width:180px;line-height:1.15}.cal-scroll-compact table.cal tbody td.name-cell .rl{display:none}.cal-scroll-compact table.cal tbody td.day{line-height:1}.cal-scroll-compact table.cal thead th:first-child{min-width:180px;padding:4px 12px}.cal-scroll-compact table.cal thead th{padding:4px 3px}body.cal-scrolled .top{padding-top:8px;padding-bottom:8px;transition:padding .18s ease}body.cal-scrolled .top .brand .brand-sub{display:none}body.cal-scrolled .top .avatar{width:28px;height:28px;font-size:11px}body.cal-scrolled .view-tabs{padding-top:4px;padding-bottom:4px;transition:padding .18s ease}body.cal-scrolled .view-tabs button{padding-top:6px;padding-bottom:6px}body.cal-scrolled .month-bar{padding:6px 12px;margin-bottom:8px;transition:padding .18s ease,margin .18s ease}body.cal-scrolled .month-bar .year-switch{margin-bottom:4px}body.cal-scrolled .month-bar .year-switch button{padding:4px 12px}body.cal-scrolled .admin-banner{display:none}body.cal-scrolled .closure-banner{padding:6px 12px;font-size:11px}table.cal{border-collapse:separate;border-spacing:0;font-size:12px}table.cal thead th{position:sticky;top:0;background:#f7f8fa;border-bottom:1px solid var(--border);font-family:var(--font-display);font-weight:500;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px 4px;min-width:28px;z-index:2}table.cal thead th:first-child{position:sticky;left:0;z-index:3;text-align:left;padding-left:16px;min-width:220px}table.cal thead th .d{display:block;font-size:12px;color:var(--text);font-weight:600}table.cal thead th .wd{font-size:9px}table.cal thead th.weekend{background:#eef0f4}table.cal tbody td.name-cell{position:sticky;left:0;background:#fff;border-right:1px solid var(--border);padding:4px 16px;z-index:1;min-width:220px;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}table.cal tbody td.name-cell .nm{font-weight:600;display:block}table.cal tbody td.name-cell .rl{display:block;font-size:11px;color:var(--muted)}table.cal tbody td.day{border-bottom:1px solid var(--border);text-align:center;font-weight:600;color:var(--muted);width:28px}table.cal tbody td.day.s-P,table.cal tbody td.day.s-T,table.cal tbody td.day.s-R,table.cal tbody td.day.s-M,table.cal tbody td.day.s-V,table.cal tbody td.day.s-O{color:#fff;font-weight:600}table.cal tbody td.day.s-A{color:var(--text);font-weight:600}table.cal tbody td.day.s-P{background:var(--s-presence)}table.cal tbody td.day.s-T{background:var(--s-trip)}table.cal tbody td.day.s-R{background:var(--s-remote)}table.cal tbody td.day.s-M{background:var(--s-milan)}table.cal tbody td.day.s-O{background:var(--s-out)}table.cal tbody td.day.s-A{background:var(--s-available)}table.cal tbody td.day.s-V{background:var(--s-rovereto)}table.cal tbody tr.meetings-row{border-top:2px solid var(--cyan);border-bottom:1px solid var(--border)}table.cal tbody tr.meetings-row td{position:sticky;top:36px;background:#e5eaf6;z-index:1}table.cal tbody tr.meetings-row td.name-cell{background:#dae2f4;font-weight:600;z-index:3}table.cal tbody tr.meetings-row td.day{text-align:center;font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--blue)}table.cal tbody tr.meetings-row td.day.has-meeting{background:var(--cyan);color:var(--blue-900);cursor:help}table.cal tbody tr.meetings-row td.day.weekend{background:#dcdee4;color:var(--muted)}table.cal tbody td.day.has-note{position:relative;cursor:help}table.cal tbody td.day.has-note .note-pin{position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 1.5px #0000002e;pointer-events:none}.note-tip{position:fixed;z-index:250;pointer-events:none;background:var(--blue-900);color:#fff;padding:12px 14px 14px;border-radius:var(--radius-md);box-shadow:0 14px 40px #00209a47;max-width:320px;min-width:200px;font-size:13px;line-height:1.5;transform:translate(-50%);opacity:0;transition:opacity .12s ease,transform .12s ease;border-top:2px solid var(--cyan)}.note-tip.open{opacity:1}.note-tip .nt-head{font-family:var(--font-display);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#ffffffc7;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.16);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.note-tip .nt-body{white-space:pre-wrap;word-wrap:break-word;font-family:var(--font-body);color:#fffffff5}.note-tip:before{content:"";position:absolute;top:-7px;left:50%;transform:translate(-50%) rotate(45deg);width:10px;height:10px;background:var(--blue-900);border-top:2px solid var(--cyan);border-left:2px solid var(--cyan)}table.cal tbody td.weekend{background:#f7f8fa}table.cal tbody td.empty-state{text-align:center;padding:28px 16px;color:var(--muted);font-family:var(--font-display);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.dashboard-view{display:flex;flex-direction:column;gap:16px}.dash-export-row{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.dash-export-btn{padding:8px 14px;border:1px solid var(--blue);background:#fff;color:var(--blue);border-radius:var(--radius-sm);font-family:var(--font-display);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.12em}.dash-export-btn:hover:not(:disabled){background:var(--blue);color:#fff}.dash-export-btn:disabled{opacity:.6;cursor:wait}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px;position:relative;overflow:hidden}.stat-card .label{font-family:var(--font-display);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.14em;margin-bottom:10px;font-weight:500}.stat-card .value{font-family:var(--font-display);font-size:34px;font-weight:500;color:var(--text);line-height:1;letter-spacing:-.02em}.stat-card .subline{margin-top:8px;font-family:var(--font-display);font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.stat-card.s-P{border-top:3px solid var(--s-presence)}.dash-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px}.dash-card h3{font-family:var(--font-display);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 16px}.bar-chart{display:flex;align-items:flex-end;gap:3px;height:220px;border-bottom:1px solid var(--border);padding:18px 0 4px}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.bar{width:100%;background:var(--blue);border-radius:var(--radius-sm) var(--radius-sm) 0 0;min-height:2px;position:relative}.bar.weekend{background:var(--blue-200)}.bar-val{position:absolute;left:50%;top:-15px;transform:translate(-50%);font-family:var(--font-display);font-size:10px;font-weight:600}.bar-val.zero{display:none}.bar-labels{display:flex;gap:3px;margin-top:6px}.bar-labels .lbl{flex:1;text-align:center;font-size:9px;color:var(--muted)}.stack-bar{display:flex;height:12px;border-radius:999px;overflow:hidden;margin-bottom:12px}.legend-line{display:flex;flex-wrap:wrap;gap:14px}.legend-line span{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}.legend-line span i{width:10px;height:10px;border-radius:2px}table.unit-table{width:100%;border-collapse:collapse;font-size:13px}table.unit-table th,table.unit-table td{padding:8px 10px;border-bottom:1px solid var(--border);text-align:left}table.unit-table th{font-family:var(--font-display);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}table.unit-table td.num{text-align:right}.mini-bar{display:inline-block;height:4px;background:var(--blue);vertical-align:middle;margin-right:6px;border-radius:2px}.directory{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md)}table.dir{width:100%;border-collapse:collapse;font-size:13px}table.dir th,table.dir td{padding:9px 14px;border-bottom:1px solid var(--border);text-align:left}table.dir th{font-family:var(--font-display);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);background:#f7f8fa}table.dir input{width:100%;padding:5px 8px;border:1px solid transparent;background:transparent;font:inherit;font-size:13px;border-radius:var(--radius-sm)}table.dir input:hover:not(:disabled){border-color:var(--border);background:#fff}table.dir input:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px #0046cc1f}.you-row{background:#0046cc0a}.former-row{color:var(--muted)}.former-row input{color:var(--muted);font-style:italic}@media (max-width: 720px){.my-layout{grid-template-columns:1fr;gap:12px}.my-main{order:1}.my-side{order:2;display:grid;grid-template-columns:1fr;gap:10px}.my-side>.card{margin:0;padding:14px}.paint-btns{display:grid;grid-template-columns:1fr 1fr;gap:6px}.paint-btns button{min-height:44px;padding:10px 12px;font-size:13px;touch-action:manipulation}.shortcut-btns button{min-height:42px;padding:10px 12px;font-size:12px;touch-action:manipulation}.my-month-grid{gap:3px}.my-month-grid .day-cell{min-height:72px;padding:5px;font-size:11px;touch-action:manipulation}.my-month-grid .day-cell .dnum{font-size:12px;font-weight:600}.my-month-grid .day-cell .status-chip{font-size:10px;padding:3px 6px}.my-month-grid .day-cell .busy-label{font-size:9px;padding:1px 4px;top:2px;right:2px}.my-month-grid .day-cell .busy-label:before{width:6px;height:6px;box-shadow:-3px 0 0 -1px var(--blue)}.my-month-grid .day-cell.today:after{font-size:8px;padding:1px 5px}.my-month-grid .day-cell .edit-btn{width:32px;height:32px;font-size:14px;touch-action:manipulation}.my-month-grid .day-cell .closure-tag,.my-month-grid .day-cell .holiday-tag{font-size:8px;padding:2px 4px;letter-spacing:.04em}.my-month-grid .day-cell .note-text{font-size:10px;line-height:1.3}.status-legend{margin-top:12px;padding:12px 14px;gap:8px 14px;font-size:11px}.my-title{font-size:15px}table.cal{font-size:11px}table.cal thead th{min-width:22px;padding:4px 2px}table.cal thead th:first-child{min-width:130px;padding-left:10px}table.cal thead th .d{font-size:11px}table.cal thead th .wd{font-size:8px}table.cal tbody td.name-cell{min-width:130px;max-width:160px;padding:4px 10px}table.cal tbody td.name-cell .nm{font-size:11px}table.cal tbody td.name-cell .rl{font-size:9px}table.cal tbody td.name-cell .rl .brand-dot{margin:0 4px}table.cal tbody td.day{width:22px;padding:4px 1px;font-size:11px}table.cal tbody tr.meetings-row td{top:30px}.filter-bar{flex-wrap:wrap;gap:6px}.filter-bar input,.filter-bar select{flex:1 1 calc(50% - 3px);min-width:0;padding:10px 12px;min-height:42px}.filter-bar button{flex:1 1 calc(50% - 3px);min-width:0;font-size:12px;padding:10px 12px;min-height:42px;touch-action:manipulation}.calendar-card .cal-header{padding:12px 14px}.calendar-card .legend{gap:8px 14px;flex-wrap:wrap;font-size:10px}.cal-scroll{max-height:calc(100vh - 320px)}.dashboard-view .dash-export-row{text-align:center;margin-bottom:14px}.dashboard-view .dash-export-btn{width:100%;padding:10px}.dash-grid{grid-template-columns:1fr 1fr;gap:8px}.stat-card{padding:12px}.stat-card .label{font-size:10px}.stat-card .value{font-size:22px}.stat-card .subline{font-size:10px;line-height:1.3}.dash-card{padding:16px 14px;margin-bottom:14px}.dash-card h3{font-size:12px}.bar-chart{overflow-x:auto;-webkit-overflow-scrolling:touch}.bar-chart .bar-col{min-width:16px}.bar-labels{overflow-x:auto}.bar-labels .lbl{min-width:16px;font-size:9px}.unit-table{font-size:11px}.unit-table th,.unit-table td{padding:6px 4px}.directory .cal-header{flex-wrap:wrap;gap:8px;padding:12px 14px}.directory .filter-bar{width:100%}.dir-import-btn{width:100%;padding:10px}table.dir{display:block}table.dir thead{display:none}table.dir tbody,table.dir tbody tr{display:block}table.dir tbody tr{margin-bottom:12px;padding:12px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md)}table.dir tbody td{display:block;padding:4px 0;border:0}table.dir tbody td:nth-of-type(1){font-size:14px;margin-bottom:6px}table.dir tbody td input{width:100%;padding:8px 10px;font-size:13px}table.dir tbody td:nth-of-type(2):before{content:"Unit"}table.dir tbody td:nth-of-type(3):before{content:"Role"}table.dir tbody td:nth-of-type(4):before{content:"Email"}table.dir tbody td:nth-of-type(5):before{content:"Access"}table.dir tbody td:before{display:block;font-family:var(--font-display);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:3px}table.dir tbody td:nth-of-type(1):before{content:""}.access-cell{text-align:left}.access-pill{width:100%;min-height:40px;justify-content:center;touch-action:manipulation}}.dashboard-controls{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:20px;align-items:stretch}.dashboard-modebar{display:inline-flex;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:3px;gap:2px}.dashboard-mode{background:transparent;border:none;padding:7px 16px;font-family:var(--font-display);font-size:12px;font-weight:500;letter-spacing:.05em;border-radius:calc(var(--radius-md) - 3px);color:var(--muted);cursor:pointer;transition:background .12s,color .12s}.dashboard-mode:hover{color:var(--text)}.dashboard-mode.active{background:var(--blue);color:#fff}.dashboard-modebar-big{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);min-width:320px;flex:1 1 380px;box-shadow:var(--shadow)}.dashboard-mode-big{display:flex;align-items:center;gap:12px;padding:12px 16px;background:transparent;border:none;border-radius:var(--radius-sm);text-align:left;cursor:pointer;color:var(--muted);transition:background .12s,color .12s,transform .12s}.dashboard-mode-big:hover{background:#0046cc0a;color:var(--text)}.dashboard-mode-big.active{background:var(--blue);color:#fff}.dashboard-mode-big.active .dashboard-mode-sub{color:#ffffffd9}.dashboard-mode-ico{font-size:26px;line-height:1;flex-shrink:0}.dashboard-mode-text{display:flex;flex-direction:column;gap:1px;line-height:1.2}.dashboard-mode-title{font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:.02em}.dashboard-mode-sub{font-size:11px;font-family:var(--font-body);color:var(--muted)}.dashboard-range{display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);flex:1 1 400px;box-shadow:var(--shadow)}.dashboard-range-grid{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dashboard-range-label{font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.dashboard-range-select{display:inline-flex;gap:4px}.dashboard-range-select select{background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;font-size:13px;font-family:var(--font-body);color:var(--text)}.dashboard-range-presets{display:flex;gap:6px;flex-wrap:wrap}.range-preset{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 10px;font-family:var(--font-display);font-size:10px;font-weight:500;letter-spacing:.05em;color:var(--muted);cursor:pointer;transition:border-color .12s,color .12s,background .12s}.range-preset:hover{border-color:var(--blue);color:var(--blue);background:#0046cc0a}.dashboard-range-summary{font-size:12px;color:var(--muted);font-family:var(--font-display)}.dashboard-range-summary b{color:var(--text);font-weight:600}.dashboard-range-summary-person{margin:0 0 14px}.dash-card-sub{font-family:var(--font-body);font-weight:400;font-size:12px;color:var(--muted);text-transform:none;letter-spacing:normal;margin-left:6px}.pulse-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}.pulse-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:6px}.pulse-label{font-family:var(--font-display);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.pulse-value{font-family:var(--font-display);font-size:28px;font-weight:600;color:var(--text);line-height:1.1}.pulse-sub{font-size:11px;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:8px}.pulse-delta{display:inline-flex;align-items:center;gap:2px;padding:2px 7px;border-radius:999px;font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:.02em}.pulse-delta-up{background:#16a34a1f;color:#15803d}.pulse-delta-down{background:#dc26261f;color:#b91c1c}.pulse-delta-flat{background:#6e6e731a;color:var(--muted)}.bar.bar-muted{background:repeating-linear-gradient(45deg,var(--blue-200) 0 6px,transparent 6px 12px);opacity:.55}.lbl-muted{color:var(--blue-200)}.bar-chart-dense{gap:1px}.bar-chart-dense .bar-col{min-width:4px}.bar-chart-dense .bar-col-divider{border-left:1px solid var(--blue-200);margin-left:4px;padding-left:4px}.bar-labels-dense{gap:1px}.bar-labels-dense .lbl{font-size:9px;letter-spacing:.05em;text-transform:uppercase;font-family:var(--font-display)}.person-cal-list{display:flex;flex-direction:column;gap:22px}.person-cal-month{font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:.05em;margin:0 0 6px;color:var(--text)}.person-timeline-day-sub{display:block;font-size:9px;letter-spacing:.05em;text-transform:uppercase;opacity:.7;margin-top:1px}.person-timeline-day{flex-direction:column;gap:0;padding:4px 2px}.dow-chart{display:flex;gap:16px;align-items:flex-end;padding:8px 4px 0;height:200px}.dow-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;gap:4px}.dow-bar-track{flex:1;width:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;border-bottom:1px solid var(--border);width:60%;max-width:80px}.dow-bar{width:100%;background:var(--blue);border-radius:var(--radius-sm) var(--radius-sm) 0 0;min-height:2px}.dow-pct{font-family:var(--font-display);font-size:11px;font-weight:600;color:var(--text)}.dow-label{font-size:11px;color:var(--muted);text-align:center;font-family:var(--font-display);letter-spacing:.05em}.dow-sub{font-size:10px;color:var(--muted);font-family:var(--font-display)}.mix-evolution{display:flex;align-items:flex-end;gap:3px;height:140px;padding:8px 0 4px;border-bottom:1px solid var(--border)}.mix-col{flex:1;height:100%;display:flex;flex-direction:column-reverse;background:var(--blue-200);border-radius:var(--radius-sm) var(--radius-sm) 0 0;overflow:hidden;min-width:6px}.mix-seg{width:100%;flex-shrink:0}.mix-axis{display:flex;gap:3px;margin:4px 0 14px}.mix-lbl{flex:1;text-align:center;font-size:9px;color:var(--muted);min-width:6px}.mix-summary-label{font-family:var(--font-display);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:4px 0 6px}.unit-table-context{font-size:11px;color:var(--muted);margin-bottom:8px}.unit-table-v2 .th-sort{cursor:pointer;user-select:none}.unit-table-v2 .th-sort:hover{color:var(--text)}.unit-table-v2 .num.band-top{color:#15803d;font-weight:600}.unit-table-v2 .num.band-bot{color:#b91c1c;font-weight:600}.attention-card{background:linear-gradient(180deg,#FAFCFF 0%,var(--card) 100%)}.attention-list{list-style:none;margin:0;padding:0}.attention-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px dashed var(--border);font-size:13px}.attention-item:last-child{border-bottom:none}.attention-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;margin-top:5px}.attention-warn .attention-dot{background:#dc2626}.attention-info .attention-dot{background:var(--blue)}.attention-empty{font-size:13px;color:var(--s-presence);padding:8px 0}.person-controls{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.person-filter,.person-select{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:9px 12px;font-size:13px;font-family:var(--font-body)}.person-filter{flex:1 1 240px;min-width:200px}.person-select{flex:2 1 320px;min-width:240px}.person-header{padding:16px 18px}.person-name{font-family:var(--font-display);font-size:22px;font-weight:600;margin:0 0 6px;display:flex;align-items:center;gap:10px}.person-meta{font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:18px}.person-meta b{color:var(--text);font-weight:500;margin-right:3px}.person-compare{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.compare-chip{font-size:10px;font-family:var(--font-display);padding:2px 6px;border-radius:4px;letter-spacing:.02em;font-weight:500}.compare-up{background:#16a34a1f;color:#15803d}.compare-down{background:#dc26261f;color:#b91c1c}.compare-flat{background:#6e6e731a;color:var(--muted)}.person-cal{display:flex;flex-direction:column;gap:8px}.person-cal-head,.person-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.person-cal-hd{text-align:center;font-family:var(--font-display);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:4px 0}.person-cell{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 6px;min-height:52px;display:flex;flex-direction:column;justify-content:space-between}.person-cell.pad{background:transparent;border-color:transparent}.person-cell.we{background:#f7f8fb}.person-cell.holiday:after{content:"🇮🇹";position:absolute;top:3px;right:3px;font-size:9px;opacity:.7}.person-cell.closure{background:repeating-linear-gradient(45deg,#FFF7ED 0 6px,transparent 6px 12px)}.person-cell-day{font-family:var(--font-display);font-size:11px;color:var(--muted)}.person-cell-code{align-self:flex-end;font-family:var(--font-display);font-size:12px;font-weight:600;padding:1px 6px;border-radius:4px;color:#fff}.person-cell.s-P .person-cell-code{background:var(--s-presence)}.person-cell.s-T .person-cell-code{background:var(--s-trip)}.person-cell.s-R .person-cell-code{background:var(--s-remote)}.person-cell.s-M .person-cell-code{background:var(--s-milan)}.person-cell.s-O .person-cell-code{background:var(--s-out)}.person-cell.s-A .person-cell-code{background:var(--s-available);color:#1a1a1a}.person-cell.s-V .person-cell-code{background:var(--s-rovereto)}.person-cal-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;color:var(--muted);margin-top:6px}.person-cal-legend span{display:inline-flex;align-items:center;gap:5px}.person-cal-legend i{width:10px;height:10px;border-radius:2px}.person-timeline{list-style:none;margin:0;padding:0}.person-timeline-item{display:flex;gap:14px;padding:10px 0;border-bottom:1px dashed var(--border)}.person-timeline-item:last-child{border-bottom:none}.person-timeline-day{flex-shrink:0;width:32px;height:32px;border-radius:50%;background:var(--blue-200);color:var(--blue-900);font-family:var(--font-display);font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center}.person-timeline-content{flex:1;display:flex;flex-direction:column;gap:4px;font-size:13px}.person-timeline-meeting{color:var(--text);font-weight:500}.person-timeline-note{color:var(--muted);font-style:italic}.person-empty{text-align:center;padding:30px 16px;color:var(--muted);font-size:13px}.person-empty-soft{padding:16px}@media (max-width: 720px){.dashboard-modebar{width:100%;justify-content:center}.dashboard-controls{gap:14px}.dashboard-modebar-big{grid-template-columns:1fr 1fr;min-width:0;width:100%}.dashboard-mode-big{padding:12px 10px;min-height:52px;touch-action:manipulation}.dashboard-mode-ico{font-size:22px}.dashboard-mode-title{font-size:13px}.dashboard-mode-sub{font-size:9.5px}.dashboard-range{padding:12px;width:100%}.dashboard-range-grid{gap:8px}.dashboard-range-select select{font-size:16px;padding:8px 10px;min-height:38px}.dashboard-range-presets{gap:6px;flex-wrap:wrap}.range-preset{font-size:11px;padding:8px 12px;min-height:36px;flex:1 1 auto;touch-action:manipulation}.pulse-row{grid-template-columns:1fr 1fr;gap:10px}.pulse-card{padding:14px 16px}.pulse-value{font-size:22px}.bar-chart,.mix-evolution{overflow-x:auto;-webkit-overflow-scrolling:touch}.dash-card{padding:16px 14px;margin-bottom:14px}.dash-card h3{font-size:13px}.person-controls{flex-direction:column;gap:8px}.person-filter,.person-select{width:100%;min-height:44px}.person-cell{min-height:46px;padding:5px 4px}.person-cell-day{font-size:11px}.person-cell-code{font-size:11px;padding:1px 5px}.dow-chart{height:160px;gap:8px}.person-meta{gap:10px;font-size:11px;flex-wrap:wrap}.person-name{font-size:19px}.person-timeline-day{width:36px;height:36px;font-size:13px}}
