:root{--ink:#273246;--muted:#5f6b7e;--line:#e9e5ef;--paper:#fff;--bg:#faf9fc;--accent:#6651a9;--accent-strong:#54418f;--soft:#f0ecf8;--soft-strong:#e4dcf3;--green:#257764;--green-soft:#eaf5ef;--amber:#966016;--amber-soft:#fff4df;--red:#ae3f45;--red-soft:#fceded;--blue:#336c9c;--blue-soft:#eaf2fb;--gray-soft:#f2f1f5;--chart-1:#6651a9;--chart-2:#289dab;--chart-3:#cf7f39;--chart-4:#2f6fc4;--chart-5:#b88a17;--chart-6:#c040b0;--chart-todo:#3b82c4;--chart-in-progress:#7c3aed;--chart-in-progress-2:#72258d;--chart-done:#39a678;--chart-axis:#5f6b7e;--chart-grid:#e9e5ef;--chart-guide:#8a93a3;--radius:12px;--radius-sm:6px;--shadow-dialog:0 20px 90px #142a4030;--focus:#448bd0;--sidebar-width:232px;--topbar-height:65px;color:var(--ink);font-synthesis:none;-webkit-font-smoothing:antialiased;font-family:Inter,Segoe UI,Arial,sans-serif;font-size:13px}*{box-sizing:border-box}body{background:var(--bg);margin:0;line-height:1.45}button,input,select,textarea{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:0}button:disabled{cursor:default;opacity:.55}button,input,select,textarea{color:var(--ink)}button:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}h1,h2,h3,p{margin:0}h1{letter-spacing:-1px;font-size:30px;font-weight:650;line-height:1.25}h2{letter-spacing:-.3px;font-size:17px;font-weight:650}h3{font-size:14px;font-weight:600}p{line-height:1.65}small{font-size:11px}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:var(--muted);border-block:1px solid var(--line);white-space:nowrap;background:#fafbfd;padding:12px 20px;font-size:10px;font-weight:500}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:16px 20px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcfe}code,.mono{font-family:Cascadia Mono,Consolas,monospace;font-size:11px}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.icon{stroke:currentColor;fill:none;stroke-width:1.65px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.muted{color:var(--muted)}.overdue{color:var(--red);font-weight:600}.eyebrow{letter-spacing:1.7px;color:var(--muted);font-size:10px;font-weight:650}.badge{white-space:nowrap;border-radius:5px;align-items:center;gap:5px;padding:4px 8px;font-size:11px;font-weight:550;display:inline-flex}.badge.green{color:var(--green);background:var(--green-soft)}.badge.amber{color:var(--amber);background:var(--amber-soft)}.badge.red{color:var(--red);background:var(--red-soft)}.badge.blue{color:var(--blue);background:var(--blue-soft)}.badge.purple{color:#7760a7;background:#f1edfa}.badge.gray{color:var(--muted);background:var(--gray-soft)}.btn{border:1px solid var(--line);background:var(--paper);white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:10px 14px;font-size:12px;font-weight:550;display:inline-flex}.btn:hover{background:var(--soft);border-color:#bac8d3}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{filter:brightness(.94)}.btn.small{min-height:30px;padding:7px 10px;font-size:11px}.btn.danger{color:var(--red);border-color:var(--red)}.btn.danger:hover{border-color:var(--red)}.btn.ghost{background:0 0;border:0}.btn:disabled:hover{background:var(--paper);border-color:var(--line)}.icon-button{width:34px;height:34px;color:var(--muted);border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--soft);color:var(--accent)}.icon-button[aria-disabled=true]{opacity:.45;cursor:not-allowed}.icon-button[aria-disabled=true]:hover{color:var(--muted);background:0 0}.avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:650;display:inline-flex}.row{align-items:center;gap:10px;display:flex}.progress{background:#edf0f3;border-radius:4px;height:5px;overflow:hidden}.progress>span{background:var(--accent);border-radius:4px;height:100%;display:block}.progress.green>span{background:#4e957f}.progress.amber>span{background:#d2a154}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel-head{justify-content:space-between;align-items:center;gap:15px;padding:20px 22px 17px;display:flex}.panel-head p{color:var(--muted);margin-top:5px;font-size:11px}.panel-body{padding:0 22px 20px}.table-wrap{position:relative;overflow:auto}.table-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;padding:13px 22px;font-size:10px;display:flex}.select{border:1px solid var(--line);background:var(--paper);border-radius:5px;max-width:100%;padding:8px 26px 8px 10px;font-size:11px}.filter-input{border:1px solid var(--line);background:var(--paper);border-radius:5px;min-width:180px;padding:9px 11px;font-size:12px}.page-heading{justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px;display:flex}.page-heading h1{margin:7px 0 8px}.page-heading p{color:var(--muted);font-size:12px}.form-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:20px;display:grid}.form-field.full{grid-column:1/-1}.dialog-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#17283b65;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-dialog);border-radius:13px;width:min(590px,100%);max-height:calc(100vh - 32px);overflow:auto}.dialog-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;padding:23px 25px 17px;display:flex}.dialog-head h2{line-height:1.5}.dialog-head .eyebrow{margin-bottom:6px}.dialog-body{padding:20px 25px 25px}.dialog-body>p{color:var(--muted);margin-bottom:15px;font-size:12px}.dialog-footer{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;margin-top:23px;padding-top:18px;display:flex}.toast-region{z-index:100;flex-direction:column;align-items:center;gap:10px;max-width:90vw;display:flex;position:fixed;bottom:25px;left:50%;transform:translate(-50%)}.toast{color:#fff;background:#233d34;border:1px solid #fff3;border-radius:8px;max-width:90vw;padding:13px 22px;font-size:12px;box-shadow:0 5px 25px #0002}.toast.success{background:#233d34}.toast.error{background:var(--red)}.toast.info{background:var(--blue)}.form-field{color:var(--muted);gap:6px;font-size:11px;display:grid}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);width:100%;padding:9px 11px;font-size:12px}.form-field[data-invalid=true] input,.form-field[data-invalid=true] select,.form-field[data-invalid=true] textarea{border-color:var(--red)}.form-field .field-error{color:var(--red)}.field-error{color:var(--red);font-size:11px}.form-field textarea{resize:vertical;min-height:80px}.check-target{vertical-align:middle;cursor:pointer;justify-content:center;align-items:center;min-width:24px;min-height:24px;display:inline-flex}.check-target input{cursor:inherit;margin:0}.check-target:has(input:disabled){cursor:default}.checkbox-field{align-items:center;gap:8px;font-size:12px;display:flex}.checkbox-field input{accent-color:var(--accent);width:15px;height:15px}.state{text-align:center;color:var(--muted);padding:32px;font-size:12px}.state .btn{margin-top:12px}.content-empty{max-width:420px;margin:48px auto}.spinner{vertical-align:middle;border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.pagination{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:13px 22px;font-size:11px;display:flex}.pagination .row{gap:6px}.error-list{color:var(--red);margin:8px 0 0;padding-left:18px;font-size:11px}.detail-rows{gap:16px;margin:0;display:grid}.detail-row{grid-template-columns:150px 1fr;gap:12px;font-size:12px;display:grid}.detail-row dt{color:var(--muted)}.detail-row dd{margin:0;font-weight:550}.link-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.link-list-item{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);align-items:center;gap:12px;padding:13px 14px;display:flex}.link-list-item:hover{border-color:var(--accent);background:var(--soft)}.link-list-item>span{flex:1;min-width:0}.link-list-item strong{font-size:12px;display:block}.link-list-item small{color:var(--muted);margin-top:2px;font-size:11px;display:block}.link-list-item>svg:last-child{color:var(--muted);flex-shrink:0}.actions-cell{justify-content:flex-end;align-items:center;gap:2px;display:flex}.text-cell{white-space:pre-wrap;overflow-wrap:anywhere;min-width:180px;max-width:360px}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;display:flex}.toolbar .filter-input{flex:1;min-width:220px}.title-cell{min-width:220px;max-width:420px}.title-cell>a{font-weight:550;line-height:1.5;display:block}.title-cell>small{margin-top:4px;font-size:11px;display:block}.hints{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.hints small{color:var(--muted);font-size:11px}.hint{border-radius:4px;padding:3px 6px;font-size:11px}.hint.blocked{background:var(--amber-soft);color:var(--amber)}.hint.overdue{background:var(--red-soft);color:var(--red)}.form-message .form-reference{margin:6px 0 0;font-size:11px}.toast-actions{justify-content:space-between;align-items:center;gap:12px;margin-top:6px;display:flex}.toast-actions a{color:inherit;font-weight:600;text-decoration:underline}.toast-actions .icon-button{width:28px;height:28px;color:inherit}.toast-actions .icon-button:hover{color:inherit;background:#ffffff26}.edit-error{justify-items:start;gap:8px;display:grid}.edit-error .form-message{width:100%}.draft-conflict .form-message{background:var(--amber-soft);color:var(--amber);gap:4px;display:grid}.menu-button{position:relative}.menu{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);min-width:190px;max-width:min(340px,100vw - 32px);box-shadow:var(--shadow-dialog);z-index:20;gap:2px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);left:0}.menu.align-end{left:auto;right:0}.menu-item{color:var(--ink);text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:9px;width:100%;padding:9px 10px;font-size:12px;display:flex}.menu-item:hover{background:var(--soft);color:var(--accent)}.menu-item[aria-disabled=true],.menu-item[aria-disabled=true]:hover{color:var(--muted);cursor:default;background:0 0}.menu-item-note{color:var(--muted);padding:0 10px 8px 18px;font-size:11px;line-height:1.5}.menu-state{color:var(--muted);padding:9px 10px;font-size:12px}@media (width<=600px){.page-heading{flex-direction:column;align-items:flex-start;gap:13px}.form-grid{grid-template-columns:1fr}.panel-head{flex-wrap:wrap;padding:16px}.dialog-head,.dialog-body{padding:18px}.detail-row{grid-template-columns:1fr;gap:2px}.toolbar{align-items:stretch}.toolbar .filter-input{min-width:0}.title-cell{min-width:0;max-width:none}.menu{min-width:min(190px,100vw - 32px)}}.app-shell{grid-template-columns:218px minmax(0,1fr);min-height:100vh;display:grid}.app-sidebar{background:var(--paper);border-right:1px solid var(--line);flex-direction:column;gap:24px;padding:25px 15px;display:flex}.app-logo{align-items:center;gap:10px;padding:0 12px;font-size:16px;font-weight:650;display:flex}.app-logo-image{width:auto;max-width:140px;height:24px;display:block}.app-logo-mark{width:32px;height:32px;display:none}.app-logo-name{line-height:1.15;display:grid}.app-logo-name small{color:var(--muted);font-size:11px;font-weight:500}.app-sidebar nav{gap:5px;display:grid}.nav-link{min-height:40px;color:var(--muted);border-radius:6px;align-items:center;gap:11px;padding:10px 12px;font-size:12px;display:flex}.nav-link:hover{color:var(--accent);background:#f7f5fc}.nav-link[aria-current=page]{color:var(--accent);background:var(--soft);font-weight:600}.nav-label{letter-spacing:1.7px;color:var(--muted);padding:0 12px 8px;font-size:10px;font-weight:650}.p-project{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--soft);align-items:center;gap:10px;min-width:0;margin:0 0 10px;padding:10px 12px;display:flex}.p-project-name{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.p-project-meta{font-size:10px}.app-side-bottom{border-top:1px solid var(--line);margin-top:auto;padding:17px 10px 0}.app-side-bottom p{color:var(--muted);margin-top:9px;font-size:10px}.app-main{min-width:0}.page-pending{z-index:45;pointer-events:none;opacity:0;background:linear-gradient(90deg, transparent, var(--accent), transparent) no-repeat;background-size:40% 100%;height:3px;position:fixed;inset:0 0 auto}.page-pending[data-pending]{animation:10ms linear .2s both page-pending-show,1.2s ease-in-out .2s infinite page-pending-run}@keyframes page-pending-show{to{opacity:1}}@keyframes page-pending-run{0%{background-position:-40% 0}to{background-position:140% 0}}@media (prefers-reduced-motion:reduce){.page-pending[data-pending]{animation-duration:10ms,3s}}.app-main .page-heading{margin-bottom:21px}.content h1{font-size:29px}.app-sidebar .eyebrow,.app-sidebar .nav-label{padding:0 12px 9px;font-size:9px}.topbar{height:var(--topbar-height);background:var(--paper);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:0 30px;display:flex}.breadcrumb{white-space:nowrap;align-items:center;gap:12px;min-width:0;font-size:12px;display:flex;overflow:hidden}.breadcrumb>*{text-overflow:ellipsis;min-width:0;overflow:hidden}.breadcrumb>span{color:var(--muted)}.content{max-width:1760px;margin:0 auto;padding:27px 30px}.home-grid{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}@media (width<=900px){.home-grid{grid-template-columns:1fr}}.topbar-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.user-menu{position:relative}.user-menu-btn{min-width:0;color:var(--ink);border:1px solid #0000;border-radius:999px;align-items:center;gap:9px;padding:5px 10px 5px 5px;display:flex}.user-menu-btn:hover,.user-menu-btn[aria-expanded=true]{background:var(--soft);border-color:var(--line)}.user-menu-name{text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:12px;font-weight:600;overflow:hidden}.user-menu-list{left:auto;right:0}.notif-menu,.notif-bell{position:relative}.notif-bell[aria-expanded=true]{background:var(--soft);color:var(--accent)}.notif-count{background:var(--red);min-width:17px;height:17px;color:var(--paper);text-align:center;border-radius:999px;padding:0 4px;font-size:10px;font-weight:650;line-height:17px;position:absolute;top:2px;right:1px}.notif-panel{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);width:min(380px,100vw - 24px);max-height:min(560px,100vh - 90px);box-shadow:var(--shadow-dialog);z-index:20;flex-direction:column;margin:0;padding:0;display:flex;position:absolute;top:calc(100% + 8px);left:auto;right:0}.notif-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 10px;display:flex}.notif-head h2{margin:0;font-size:14px}.notif-body{min-height:0;overflow-y:auto}.notif-foot{border-top:1px solid var(--line);padding:11px 16px;font-size:12px}.notif-foot a{color:var(--accent);font-weight:600}.qs{margin-right:6px;position:relative}.qs-box{color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:7px 10px;display:flex}.qs-box:focus-within{border-color:var(--accent);background:var(--paper)}.qs-box input{width:190px;min-width:0;color:var(--ink);background:0 0;border:0;outline:none;font-size:12px}.qs-box kbd{border:1px solid var(--line);white-space:nowrap;border-radius:3px;padding:1px 4px;font-family:inherit;font-size:10px}.qs-popup{z-index:40;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);width:min(460px,100vw - 32px);max-height:min(480px,100vh - 90px);box-shadow:var(--shadow-dialog);padding:6px;position:absolute;top:calc(100% + 6px);right:0;overflow:auto}.qs-popup[hidden]{display:none}.qs-group{letter-spacing:.6px;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px;font-size:10px;font-weight:600}.qs-option{color:var(--ink);cursor:pointer;border-radius:5px;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.qs-option.active{background:var(--soft);color:var(--accent-strong)}.qs-option .icon{color:var(--muted);flex-shrink:0}.qs-key{white-space:nowrap;font-weight:600}.qs-summary{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.qs-all{border-top:1px solid var(--line);border-radius:0 0 5px 5px;margin-top:4px}.qs-note{color:var(--muted);padding:8px 10px;font-size:12px}.shortcuts{gap:16px;display:grid}.shortcuts-table caption{caption-side:top;text-align:left;padding-bottom:6px;font-size:12px;font-weight:600}.shortcuts-table th,.shortcuts-table td{border-block:0;border-bottom:1px solid var(--line);vertical-align:top;background:0 0;padding:7px 10px;font-size:12px}.shortcuts-table tbody tr:last-child>*{border-bottom:0}.shortcuts-table tbody th{width:40%;color:var(--ink);white-space:normal;font-weight:400}.shortcuts-table kbd{border:1px solid var(--line);background:var(--bg);border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-family:inherit;font-size:11px}@media (width<=1150px){.qs-box input{width:140px}.qs-box kbd{display:none}}@media (width<=650px){.qs{display:none}}@media (width>=1600px){.app-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr)}.content{padding:34px 40px}}@media (width<=1150px){.app-shell{grid-template-columns:185px minmax(0,1fr)}.app-sidebar{padding-inline:10px}.content{padding:24px}}@media (width<=900px){.app-shell{grid-template-columns:68px minmax(0,1fr)}.app-sidebar{padding:20px 8px}.app-sidebar .app-logo{justify-content:center;padding:0}.app-sidebar .app-logo-mark{display:block}.app-sidebar .app-logo-image,.app-sidebar .app-logo-name,.app-sidebar .eyebrow,.app-sidebar .nav-label,.app-side-bottom,.p-project{display:none}.nav-link span{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.nav-link{justify-content:center;padding:12px}.topbar{padding-inline:22px}}@media (width<=650px){.app-shell{grid-template-columns:48px minmax(0,1fr)}.app-sidebar{padding:16px 3px}.topbar{gap:12px;height:58px;padding-inline:12px}.topbar-actions{gap:2px}.content{padding:19px 12px}.content h1{font-size:25px}.user-menu-name{display:none}}.auth-page{background:radial-gradient(circle at top, var(--soft), var(--bg) 60%);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);width:min(400px,100%);padding:32px;box-shadow:0 10px 40px #2a1e5010}.auth-card h1{margin:20px 0 6px;font-size:24px}.auth-card form{gap:16px;margin-top:22px;display:grid}.auth-card .btn{width:100%}.auth-card .auth-sso{margin-top:22px;display:flex}.auth-divider{color:var(--muted);align-items:center;gap:10px;margin:20px 0 0;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";border-top:1px solid var(--line);flex:1}.auth-card .auth-divider+form{margin-top:16px}.auth-note{margin:16px 0 0;font-size:12px}.form-message{border-radius:var(--radius-sm);padding:10px 12px;font-size:12px}.form-message.error{background:var(--red-soft);color:var(--red)}.form-message.info{background:var(--soft);color:var(--accent-strong)}.auth-card .form-message+.form-message{margin-top:8px}.auth-card .form-message p{margin:0}.auth-signout-failed{gap:10px;display:grid}.home-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.home-tile{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);flex-direction:column;gap:6px;min-width:0;padding:12px 14px;display:flex}.home-tile:hover{background:var(--soft)}.home-tile>span{color:var(--muted);font-size:11px}.home-tile>strong{font-size:24px;font-weight:620;line-height:1.1}.home-tile.alert>strong{color:var(--red)}.home-portfolio p{font-size:13px}.home-portfolio p strong{font-size:24px;font-weight:620}.home-health{flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}@media (width<=600px){.home-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.notif-list{margin:0;padding:0;list-style:none;display:grid}.notif-item+.notif-item{border-top:1px solid var(--line)}.notif-entry{width:100%;color:var(--ink);text-align:left;font:inherit;background:0 0;border:0;align-items:flex-start;gap:10px;padding:12px 16px;display:flex}a.notif-entry:hover,button.notif-entry:hover{background:var(--soft)}.notif-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:5px}.notif-item.unread .notif-dot{background:var(--accent)}.notif-text{gap:3px;min-width:0;display:grid}.notif-message{overflow-wrap:anywhere;font-size:12px;line-height:1.5}.notif-item.unread .notif-message{font-weight:600}.notif-text time{color:var(--muted);font-size:11px}
