:root{--md-sys-color-primary:#0e7ab0;--md-sys-color-on-primary:#fff;--md-sys-color-primary-container:#c6e7ff;--md-sys-color-on-primary-container:#001e30;--md-sys-color-secondary:#4d616c;--md-sys-color-on-secondary:#fff;--md-sys-color-secondary-container:#d0e6f2;--md-sys-color-on-secondary-container:#081e27;--md-sys-color-tertiary:#b8690b;--md-sys-color-on-tertiary:#fff;--md-sys-color-tertiary-container:#ffddb3;--md-sys-color-on-tertiary-container:#2a1700;--md-sys-color-error:#ba1a1a;--md-sys-color-on-error:#fff;--md-sys-color-error-container:#ffdad6;--md-sys-color-on-error-container:#410002;--md-sys-color-success:#146c37;--md-sys-color-on-success:#fff;--md-sys-color-success-container:#a6f2bf;--md-sys-color-on-success-container:#00210f;--md-sys-color-warning:#8a5300;--md-sys-color-warning-container:#ffddb3;--md-sys-color-surface:#f6f9fb;--md-sys-color-surface-container-lowest:#fff;--md-sys-color-surface-container-low:#f0f3f6;--md-sys-color-surface-container:#eaeef2;--md-sys-color-surface-container-high:#e4e9ee;--md-sys-color-surface-container-highest:#dee4ea;--md-sys-color-on-surface:#1a2430;--md-sys-color-on-surface-variant:#41484d;--md-sys-color-outline:#71787e;--md-sys-color-outline-variant:#c2c8ce;--md-sys-color-inverse-surface:#2e3135;--md-sys-color-inverse-on-surface:#eff1f4;--md-sys-color-scrim:#0006;--md-sys-state-hover:.08;--md-sys-state-focus:.1;--md-sys-state-pressed:.12;--md-sys-elevation-0:none;--md-sys-elevation-1:0 1px 3px #10243814, 0 1px 2px #1024380f;--md-sys-elevation-2:0 2px 6px #1024381a, 0 1px 2px #10243812;--md-sys-elevation-3:0 4px 12px #1024381f, 0 2px 4px #10243814;--md-sys-elevation-4:0 6px 20px #10243824, 0 2px 6px #10243814;--md-sys-elevation-5:0 12px 32px #1024382e, 0 4px 8px #1024381a;--md-sys-shape-corner-xs:4px;--md-sys-shape-corner-sm:8px;--md-sys-shape-corner-md:12px;--md-sys-shape-corner-lg:16px;--md-sys-shape-corner-xl:28px;--md-sys-shape-corner-full:999px;--md-font:"Roboto Flex", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--md-type-display-large:700 3.5rem/1.12 var(--md-font);--md-type-headline-large:600 2rem/1.2 var(--md-font);--md-type-headline-medium:600 1.6rem/1.25 var(--md-font);--md-type-title-large:600 1.25rem/1.3 var(--md-font);--md-type-title-medium:600 1rem/1.4 var(--md-font);--md-type-body-large:400 1rem/1.5 var(--md-font);--md-type-body-medium:400 .875rem/1.45 var(--md-font);--md-type-label-large:600 .875rem/1.3 var(--md-font);--md-type-label-medium:600 .75rem/1.3 var(--md-font);--bg:var(--md-sys-color-surface);--surface:var(--md-sys-color-surface-container-lowest);--border:var(--md-sys-color-outline-variant);--text:var(--md-sys-color-on-surface);--muted:var(--md-sys-color-on-surface-variant);--brand:var(--md-sys-color-primary);--brand-dark:#0b5c86;--accent:var(--md-sys-color-tertiary);--danger:var(--md-sys-color-error);--ok:var(--md-sys-color-success);--radius:var(--md-sys-shape-corner-md);--shadow:var(--md-sys-elevation-1);--font:var(--md-font)}:root[data-theme=dark]{--md-sys-color-primary:#8fcdf4;--md-sys-color-on-primary:#00344e;--md-sys-color-primary-container:#004b6f;--md-sys-color-on-primary-container:#c6e7ff;--md-sys-color-secondary:#b4cad6;--md-sys-color-on-secondary:#1f333c;--md-sys-color-secondary-container:#354a54;--md-sys-color-on-secondary-container:#d0e6f2;--md-sys-color-tertiary:#ffb959;--md-sys-color-on-tertiary:#472a00;--md-sys-color-tertiary-container:#663d00;--md-sys-color-on-tertiary-container:#ffddb3;--md-sys-color-error:#ffb4ab;--md-sys-color-on-error:#690005;--md-sys-color-error-container:#93000a;--md-sys-color-on-error-container:#ffdad6;--md-sys-color-success:#7bd894;--md-sys-color-on-success:#00391c;--md-sys-color-success-container:#005229;--md-sys-color-on-success-container:#97f5ae;--md-sys-color-warning:#f0b36b;--md-sys-color-warning-container:#663d00;--md-sys-color-surface:#101418;--md-sys-color-surface-container-lowest:#0b0f12;--md-sys-color-surface-container-low:#181c20;--md-sys-color-surface-container:#1c2024;--md-sys-color-surface-container-high:#262a2f;--md-sys-color-surface-container-highest:#31353a;--md-sys-color-on-surface:#e1e2e5;--md-sys-color-on-surface-variant:#c0c7cd;--md-sys-color-outline:#8a9297;--md-sys-color-outline-variant:#40484d;--md-sys-color-inverse-surface:#e1e2e5;--md-sys-color-inverse-on-surface:#2e3135;--md-sys-color-scrim:#0009;--surface:var(--md-sys-color-surface-container-high);--brand-dark:#a9dbff;--md-sys-elevation-1:0 1px 3px #0006, 0 1px 2px #0000004d;--md-sys-elevation-2:0 2px 6px #00000070, 0 1px 2px #0000004d;--md-sys-elevation-3:0 4px 12px #0000007a;--md-sys-elevation-4:0 6px 20px #00000085;--md-sys-elevation-5:0 12px 32px #00000094}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--md-ease-standard:cubic-bezier(.2, 0, 0, 1);--md-ease-standard-decelerate:cubic-bezier(0, 0, 0, 1);--md-ease-standard-accelerate:cubic-bezier(.3, 0, 1, 1);--md-ease-emphasized:cubic-bezier(.2, 0, 0, 1);--md-ease-emphasized-decelerate:cubic-bezier(.05, .7, .1, 1);--md-ease-emphasized-accelerate:cubic-bezier(.3, 0, .8, .15);--md-dur-short1:50ms;--md-dur-short2:.1s;--md-dur-short4:.2s;--md-dur-medium2:.3s;--md-dur-medium4:.4s;--md-dur-long2:.5s}@keyframes md-enter-kf{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.md-enter,.md-stagger>*{animation:md-enter-kf var(--md-dur-medium2) var(--md-ease-emphasized-decelerate) both}.md-stagger>:first-child{animation-delay:20ms}.md-stagger>:nth-child(2){animation-delay:40ms}.md-stagger>:nth-child(3){animation-delay:60ms}.md-stagger>:nth-child(4){animation-delay:80ms}.md-stagger>:nth-child(5){animation-delay:.1s}.md-stagger>:nth-child(6){animation-delay:.12s}.md-stagger>:nth-child(7){animation-delay:.14s}.md-stagger>:nth-child(8){animation-delay:.16s}.md-stagger>:nth-child(9){animation-delay:.18s}.md-stagger>:nth-child(n+10){animation-delay:.2s}@keyframes md-scrim-kf{0%{opacity:0}to{opacity:1}}.md-scrim{animation:md-scrim-kf var(--md-dur-short4) var(--md-ease-standard) both}@keyframes md-sheet-kf{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.md-sheet{animation:md-sheet-kf var(--md-dur-medium4) var(--md-ease-emphasized-decelerate) both}@keyframes md-snack-kf{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.md-snack{animation:md-snack-kf var(--md-dur-medium2) var(--md-ease-emphasized-decelerate) both}.md-state{isolation:isolate;position:relative}.md-state:before{content:"";border-radius:inherit;opacity:0;pointer-events:none;transition:opacity var(--md-dur-short2) var(--md-ease-standard);z-index:0;background:currentColor;position:absolute;inset:0}.md-state:hover:before{opacity:var(--md-sys-state-hover)}.md-state:focus-visible:before{opacity:var(--md-sys-state-focus)}.md-state:active:before{opacity:var(--md-sys-state-pressed)}@media (prefers-reduced-motion:reduce){.md-enter,.md-stagger>*,.md-scrim,.md-sheet,.md-snack{animation:none!important}.md-state:before{transition:none}*{scroll-behavior:auto!important}}.btn{isolation:isolate;font:var(--md-type-label-large);border-radius:var(--md-sys-shape-corner-full);transition:box-shadow var(--md-dur-short2) var(--md-ease-standard), background-color var(--md-dur-short2) var(--md-ease-standard);justify-content:center;align-items:center;gap:.5rem;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";opacity:0;transition:opacity var(--md-dur-short1) var(--md-ease-standard);z-index:-1;background:currentColor;position:absolute;inset:0}.btn:hover:before{opacity:var(--md-sys-state-hover)}.btn:focus-visible:before{opacity:var(--md-sys-state-focus)}.btn:active:before{opacity:var(--md-sys-state-pressed)}.btn:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}.btn:disabled{opacity:.4;cursor:default}.btn:disabled:before{opacity:0}.btn-primary,.btn-filled{background:var(--brand);color:var(--md-sys-color-on-primary);border-color:#0000}.btn-primary:hover,.btn-filled:hover{background:var(--brand);box-shadow:var(--md-sys-elevation-1)}.btn-tonal{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);border-color:#0000}.btn-outlined{border-color:var(--md-sys-color-outline);color:var(--brand);background:0 0}.btn-text{color:var(--brand);background:0 0;border-color:#0000;padding-inline:.75rem}.btn-icon{isolation:isolate;width:40px;height:40px;min-height:40px;color:var(--text);border-radius:var(--md-sys-shape-corner-full);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative;overflow:hidden}.btn-icon:before{content:"";opacity:0;transition:opacity var(--md-dur-short1);z-index:-1;background:currentColor;position:absolute;inset:0}.btn-icon:hover:before{opacity:var(--md-sys-state-hover)}.btn-icon:active:before{opacity:var(--md-sys-state-pressed)}.fab{isolation:isolate;cursor:pointer;background:var(--md-sys-color-primary-container);min-height:56px;color:var(--md-sys-color-on-primary-container);border-radius:var(--md-sys-shape-corner-lg);box-shadow:var(--md-sys-elevation-3);font:var(--md-type-label-large);transition:box-shadow var(--md-dur-short2) var(--md-ease-standard);border:none;justify-content:center;align-items:center;gap:.5rem;padding:0 1.25rem;display:inline-flex;position:relative;overflow:hidden}.fab:before{content:"";opacity:0;transition:opacity var(--md-dur-short1);z-index:-1;background:currentColor;position:absolute;inset:0}.fab:hover{box-shadow:var(--md-sys-elevation-4)}.fab:hover:before{opacity:var(--md-sys-state-hover)}.fab:active:before{opacity:var(--md-sys-state-pressed)}.card{border-radius:var(--md-sys-shape-corner-lg)}.card-filled{background:var(--md-sys-color-surface-container);box-shadow:none;border-color:#0000}.card-elevated{box-shadow:var(--md-sys-elevation-2);border-color:#0000}.chip{border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-sm);min-height:32px;color:var(--text);font:var(--md-type-label-large);cursor:pointer;transition:background-color var(--md-dur-short2) var(--md-ease-standard);background:0 0;align-items:center;gap:.35rem;padding:.3rem .75rem;display:inline-flex}.chip:hover{background:color-mix(in srgb, var(--text) 8%, transparent)}.chip.selected{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);border-color:#0000}.list-item{isolation:isolate;border-radius:var(--md-sys-shape-corner-md);color:inherit;cursor:pointer;align-items:center;gap:.75rem;padding:.75rem 1rem;text-decoration:none;display:flex;position:relative}.list-item:before{content:"";border-radius:inherit;background:var(--text);opacity:0;z-index:-1;transition:opacity var(--md-dur-short2) var(--md-ease-standard);position:absolute;inset:0}.list-item:hover:before{opacity:var(--md-sys-state-hover)}.list-item:active:before{opacity:var(--md-sys-state-pressed)}.field-m3{position:relative}.field-m3>input,.field-m3>select,.field-m3>textarea{border-radius:var(--md-sys-shape-corner-sm);transition:border-color var(--md-dur-short2) var(--md-ease-standard), box-shadow var(--md-dur-short2) var(--md-ease-standard)}input:focus,select:focus,textarea:focus{border-color:var(--md-sys-color-primary);box-shadow:0 0 0 1px var(--md-sys-color-primary);outline:none}.segmented{border:1px solid var(--md-sys-color-outline);border-radius:var(--md-sys-shape-corner-full);background:0 0;display:inline-flex;overflow:hidden}.segmented>button{isolation:isolate;color:var(--text);min-height:40px;font:var(--md-type-label-large);cursor:pointer;border:none;border-right:1px solid var(--md-sys-color-outline);transition:background-color var(--md-dur-short2) var(--md-ease-standard);background:0 0;border-radius:0;padding:.4rem .9rem;position:relative}.segmented>button:last-child{border-right:none}.segmented>button:hover{background:color-mix(in srgb, var(--text) 8%, transparent)}.segmented>button.selected{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.dt-row{transition:background-color var(--md-dur-short2) var(--md-ease-standard)}.dt-row:hover{background:color-mix(in srgb, var(--text) 6%, transparent)}.empty-state{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1rem;display:flex}.empty-state .empty-ico{opacity:.5;font-size:3rem;line-height:1}.empty-state .empty-ico .material-symbols-rounded{font-size:3rem}@keyframes md-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{border-radius:var(--md-sys-shape-corner-sm);background:linear-gradient(90deg, var(--md-sys-color-surface-container) 25%, var(--md-sys-color-surface-container-high) 50%, var(--md-sys-color-surface-container) 75%);background-size:200% 100%;animation:1.4s linear infinite md-shimmer}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.md-scrim-bg{background:var(--md-sys-color-scrim);z-index:100;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.md-dialog{background:var(--md-sys-color-surface-container-high);color:var(--text);border-radius:var(--md-sys-shape-corner-xl);box-shadow:var(--md-sys-elevation-5);width:100%;max-width:560px;max-height:85vh;padding:1.5rem;overflow:auto}.md-snackbar{left:50%;bottom:calc(72px + env(safe-area-inset-bottom));z-index:200;background:var(--md-sys-color-inverse-surface);color:var(--md-sys-color-inverse-on-surface);border-radius:var(--md-sys-shape-corner-sm);box-shadow:var(--md-sys-elevation-3);max-width:min(560px,92vw);font:var(--md-type-body-medium);align-items:center;gap:1rem;padding:.85rem 1.1rem;display:flex;position:fixed;transform:translate(-50%)}.md-snackbar button{color:var(--md-sys-color-primary);font:var(--md-type-label-large);cursor:pointer;background:0 0;border:none;min-height:auto;padding:.2rem .4rem}.material-symbols-rounded{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;vertical-align:middle;direction:ltr;font-family:Material Symbols Rounded;font-style:normal;font-weight:400;line-height:1;display:inline-block}.mi{margin-right:.15em;font-size:1.2em}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;flex-direction:column;min-height:100dvh;line-height:1.5;display:flex}a{color:var(--brand);text-decoration:none}h1,h2,h3{margin:0 0 .5em;line-height:1.2}button,.btn{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius);min-height:44px;padding:.6rem 1rem}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--md-sys-color-on-primary)}.btn-primary:hover{background:var(--brand-dark)}.btn-block{width:100%}input,textarea,select{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);min-height:44px;padding:.6rem .75rem}label{color:var(--muted);margin:0 0 .25rem;font-size:.85rem;display:block}.lbl{color:var(--muted);margin:0 0 .15rem;font-size:.75rem;display:block}.field{margin-bottom:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.app-sidebar{display:none}.sb-logo{color:var(--brand);letter-spacing:-.01em;padding:.35rem .7rem .9rem;font-size:1.2rem;font-weight:800;text-decoration:none;display:block}.sb-nav{flex-direction:column;gap:.15rem;display:flex}.sb-group+.sb-group{margin-top:.5rem}.sb-group-title{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:.5rem .75rem .2rem;font-size:.68rem;font-weight:700}.sb-item{border-radius:var(--md-sys-shape-corner-full,999px);color:var(--text);font:var(--md-type-label-large);transition:background-color var(--md-dur-short2) var(--md-ease-standard);align-items:center;gap:.7rem;padding:.5rem .75rem;font-weight:500;text-decoration:none;display:flex}.sb-item .material-symbols-rounded{color:var(--muted);flex-shrink:0;font-size:1.35rem}.sb-item:hover{background:var(--md-sys-color-surface-container-high)}.sb-item.active{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.sb-item.active .material-symbols-rounded{color:var(--md-sys-color-on-secondary-container);font-variation-settings:"FILL" 1, "wght" 500}.app-header{z-index:20;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.6rem 1rem;display:flex;position:sticky;top:0;overflow:hidden}.app-header .logo{color:var(--brand);min-width:0;font-size:1.1rem;font-weight:700;overflow:hidden}.app-header .spacer{flex:1;min-width:0}#logout-btn{flex-shrink:0;align-items:center;gap:.35rem;display:inline-flex}#logout-btn .logout-ico{font-size:1.3rem;display:none}.app-main{box-sizing:border-box;flex:1 0 auto;width:100%;max-width:1100px;margin:0 auto;padding:1rem}.tabbar{z-index:20;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);flex-shrink:0;display:flex;position:sticky;bottom:0}.tabbar a{text-align:center;min-width:0;color:var(--muted);font:var(--md-type-label-medium);white-space:nowrap;text-overflow:ellipsis;flex-direction:column;flex:1;align-items:center;gap:.15rem;padding:.5rem .15rem .4rem;text-decoration:none;display:flex;overflow:hidden}.tabbar a .ico{border-radius:var(--md-sys-shape-corner-full);width:56px;height:32px;transition:background-color var(--md-dur-short2) var(--md-ease-standard);justify-content:center;align-items:center;display:inline-flex}.tabbar a .ico .material-symbols-rounded{font-size:1.5rem}.tabbar a.active{color:var(--md-sys-color-on-secondary-container)}.tabbar a.active .ico{background:var(--md-sys-color-secondary-container)}.tabbar a.active .material-symbols-rounded{font-variation-settings:"FILL" 1, "wght" 500, "GRAD" 0, "opsz" 24}.badge{background:var(--md-sys-color-surface-container-high);color:var(--muted);border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:600;display:inline-block}a.card{transition:box-shadow var(--md-dur-short2) var(--md-ease-standard), transform var(--md-dur-short2) var(--md-ease-standard)}a.card:hover{box-shadow:var(--md-sys-elevation-3);transform:translateY(-1px)}.kpis{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem;margin-bottom:1.25rem;display:grid}.kpi{text-align:center;padding:.9rem .6rem}.kpi-ico{color:var(--brand);margin-bottom:.3rem;font-size:1.15rem;line-height:1}.kpi-ico .material-symbols-rounded{font-size:2rem}.kpi-num{font-size:1.7rem;font-weight:700;line-height:1.1}.kpi-lbl{color:var(--muted);margin-top:.15rem;font-size:.78rem}.admin-links{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.6rem;margin-bottom:1rem;display:grid}.admin-links a.card{text-align:center;padding:.9rem .5rem;font-weight:600}h1+p{margin-top:.15rem}.app-header .badge{text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;max-width:34vw;overflow:hidden}@media (width<=560px){.app-header{gap:.4rem;padding:.5rem .75rem}.app-header .logo img{max-width:110px;max-height:24px}.app-header .badge{max-width:26vw}#logout-btn{padding:.4rem .5rem}#logout-btn .btn-label{display:none}#logout-btn .logout-ico{display:inline-block}.app-main{padding:.75rem}.kpis{grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:1rem}.kpi{padding:.7rem .4rem}.kpi-ico{font-size:1rem}.kpi-num{font-size:1.4rem}.kpi-lbl{font-size:.72rem}.admin-links{grid-template-columns:repeat(2,1fr);gap:.5rem}.admin-links a.card{padding:.75rem .4rem;font-size:.9rem}.card{padding:.8rem}h1{font-size:1.4rem}}.kanban-scroll{padding-bottom:.5rem;overflow-x:auto}.kanban-row{gap:.4rem;display:flex}.kanban-col{flex-direction:column;flex:0 0 150px;min-width:150px;display:flex}@media (width>=720px){.mobile-only{display:none!important}.kanban-col{flex:1 1 0;min-width:0}}@media (width>=900px){.app-sidebar{z-index:30;background:var(--surface);border-right:1px solid var(--border);overscroll-behavior:contain;flex-direction:column;width:250px;padding:.85rem .65rem 1.25rem;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.tabbar{display:none}.app-header{min-height:60px;padding-left:calc(250px + 1.25rem)}.app-header .logo{display:none}.app-main{max-width:1200px;margin:0;padding:1.75rem 2rem 2rem calc(250px + 2rem)}}
