:root{--bg:#f5f7fb;--panel:#fff;--ink:#0f172a;--ink-2:#334155;--muted:#64748b;--line:#e2e8f0;--line-2:#f1f5f9;--brand:#2563eb;--brand-2:#1d4ed8;--brand-soft:#eff6ff;--ok:#059669;--danger:#dc2626;--warn:#d97706;--side:#0f172a;--radius:10px;--shadow:0 1px 2px #0f172a0f, 0 1px 3px #0f172a0d;--shadow-lg:0 12px 40px #0f172a2e;color:var(--ink);background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1{letter-spacing:-.01em;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 2px;font-size:24px;font-weight:700;display:flex}h2{margin:0;font-size:18px}h3{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);margin:0;font-size:13px}h4{align-items:center;gap:6px;margin:0 0 8px;font-size:14px;display:flex}p{margin:0 0 10px;line-height:1.5}code{background:var(--line-2);border-radius:4px;padding:1px 5px}.muted{color:var(--muted)}.small{font-size:12px}.mt{margin-top:18px}.grow{flex:1;min-width:0}.spacer{flex:1}.num{text-align:right;white-space:nowrap}.pad{padding:12px}.btn{border:1px solid var(--line);color:var(--ink-2);font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--line-2);border-color:#cbd5e1;text-decoration:none}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-2);border-color:var(--brand-2)}.btn-success{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.btn-success:hover{background:#d1fae5;border-color:#6ee7b7}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-ghost-danger{color:var(--danger);border-color:#fecaca}.btn-ghost-danger:hover{background:#fef2f2;border-color:#fca5a5}.btn-sm{padding:5px 10px;font-size:13px}.btn-lg{padding:11px 18px;font-size:15px}.btn-block{width:100%;margin-top:8px}.btn-new{letter-spacing:.02em;font-weight:700}.icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:6px;padding:6px;display:inline-flex}.icon-btn:hover{background:var(--line-2);color:var(--ink)}.link-btn{color:var(--brand);cursor:pointer;font:inherit;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:13px;display:inline-flex}.link-btn:hover{text-decoration:underline}.row-gap{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.seg{border:1px solid var(--line);background:#fff;border-radius:8px;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;font:inherit;color:var(--muted);background:0 0;border:0;align-items:center;gap:6px;padding:7px 12px;display:inline-flex}.seg button.on{background:var(--brand-soft);color:var(--brand);font-weight:600}.app{min-height:100vh;display:flex}.sidebar{background:var(--side);color:#cbd5e1;z-index:40;flex-direction:column;flex-shrink:0;width:232px;height:100vh;display:flex;position:sticky;top:0}.brand{color:#fff;align-items:center;gap:10px;padding:18px 18px 14px;font-size:16px;font-weight:700;display:flex}.brand .icon-btn{color:#cbd5e1;margin-left:auto}.brand-lg{color:var(--ink);padding:0 0 8px;font-size:20px}.logo{background:var(--brand);color:#fff;border-radius:8px;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.sidebar nav{flex-direction:column;flex:1;gap:2px;padding:6px 10px;display:flex;overflow-y:auto}.nav-item{color:#cbd5e1;border-radius:8px;align-items:center;gap:11px;padding:9px 12px;font-weight:500;display:flex}.nav-item:hover{color:#fff;background:#ffffff12;text-decoration:none}.nav-item.active{background:var(--brand);color:#fff}.nav-badge{background:var(--danger);color:#fff;border-radius:10px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:700}.sidebar-foot{border-top:1px solid #ffffff14;padding:14px}.sidebar-foot .btn{color:#cbd5e1;background:0 0;border-color:#ffffff26}.sidebar-foot .btn:hover{background:#ffffff12}.me{align-items:center;gap:10px;display:flex}.me-name{color:#fff;font-weight:600}.me .muted{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:30;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#ffffffeb;align-items:center;gap:12px;padding:10px 24px;display:flex;position:sticky;top:0}.content{padding:24px}.page{max-width:1280px;margin:0 auto}.page-wide{max-width:1500px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.back{color:var(--muted);align-items:center;gap:6px;margin-bottom:10px;font-size:13px;display:inline-flex}.only-sm{display:none!important}.backdrop-sm{display:none}.gsearch{background:var(--line-2);border:1px solid var(--line);max-width:620px;color:var(--muted);border-radius:9px;flex:1;align-items:center;gap:8px;padding:0 12px;display:flex;position:relative}.gsearch:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);background:#fff}.gsearch input{width:100%;font:inherit;color:var(--ink);background:0 0;border:0;outline:none;padding:9px 0}.gsearch-pop{border:1px solid var(--line);box-shadow:var(--shadow-lg);background:#fff;border-radius:10px;max-height:440px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.gs-item{cursor:pointer;color:var(--ink);border-radius:7px;align-items:center;gap:10px;padding:8px 10px;display:flex}.gs-item.sel{background:var(--brand-soft)}.gs-kind{color:var(--muted);background:var(--line-2);text-align:center;border-radius:4px;min-width:74px;padding:2px 6px;font-size:11px;font-weight:600}.sync{border-radius:6px;align-items:center;gap:5px;padding:4px 8px;font-size:12px;display:inline-flex}.sync.ok{color:var(--ok);background:#ecfdf5}.sync.warn{color:var(--warn);background:#fffbeb}.notif-wrap,.notif-btn{position:relative}.notif-count{background:var(--danger);color:#fff;border-radius:8px;padding:0 5px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:0;right:0}.notif-pop{border:1px solid var(--line);width:360px;max-width:92vw;box-shadow:var(--shadow-lg);background:#fff;border-radius:12px;padding:10px;position:absolute;top:calc(100% + 8px);right:0}.notif-head{justify-content:space-between;align-items:center;padding:4px 6px 8px;display:flex}.notif-list{max-height:360px;overflow-y:auto}.notif{cursor:pointer;border-left:3px solid #0000;border-radius:8px;padding:9px 10px}.notif:hover{background:var(--line-2)}.notif.unread{background:var(--brand-soft);border-left-color:var(--brand)}.notif-alert{cursor:pointer;border-radius:8px;align-items:center;gap:8px;margin-bottom:6px;padding:9px 10px;font-weight:600;display:flex}.notif-alert.late{color:var(--danger);background:#fef2f2}.notif-alert.today{color:var(--brand);background:#eff6ff}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px}.card-head{justify-content:space-between;align-items:center;gap:10px;padding:14px 16px 0;display:flex}.card-head h3{align-items:center;gap:6px;display:flex}.card-body{padding:14px 16px 16px}.card-highlight{border:2px solid var(--brand)}.card-highlight .card-head h3{color:var(--brand);font-size:14px}.kpis{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.kpi{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--ink);background:#fff;align-items:center;gap:14px;padding:16px;display:flex}.kpi:hover{border-color:#cbd5e1;text-decoration:none}.kpi-alert{background:#fff7f7;border-color:#fca5a5}.kpi-icon{border-radius:12px;flex-shrink:0;place-items:center;width:46px;height:46px;display:grid}.kpi-value{font-size:26px;font-weight:800;line-height:1}.kpi-label{color:var(--muted);margin-top:4px;font-size:13px}.grid-2{grid-template-columns:1fr 1fr;gap:18px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.grid-2>.card,.grid-3>.card{margin-bottom:0}.grid-2+.grid-3,.grid-2+.grid-2{margin-top:18px}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:6px;padding:22px 10px;display:flex}.empty p{margin:0}.note{white-space:pre-wrap;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin-bottom:14px;padding:10px 14px}.chips{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.chip{border:1px solid var(--line);cursor:pointer;font:inherit;color:var(--ink-2);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;display:inline-flex}.chip:hover{border-color:#cbd5e1}.chip-on{background:var(--brand);border-color:var(--brand);color:#fff}.chip-check{margin-left:6px;font-size:13px}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.filters select,.filters input,.filter-date input{border:1px solid var(--line);font:inherit;background:#fff;border-radius:8px;padding:7px 10px}.filter-search{flex:1;min-width:260px;max-width:420px}.filter-ss{min-width:220px}.filter-date{color:var(--muted);align-items:center;gap:6px;display:inline-flex}.badge{white-space:nowrap;vertical-align:middle;border:1px solid;border-radius:999px;align-items:center;padding:1px 8px;font-size:11.5px;font-weight:600;display:inline-flex}h1 .badge{font-size:12px}.avatar{color:#fff;border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:inline-grid}.usertag{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.elink{color:var(--ink-2);align-items:center;gap:4px;display:inline-flex}.elink:hover{color:var(--brand)}.task-list{flex-direction:column;gap:6px;display:flex}.task-row{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:9px;align-items:center;gap:12px;padding:10px 12px;display:flex;position:relative}.task-row:hover{background:#fcfdff;border-color:#cbd5e1}.task-row.late{background:#fff8f8;border-color:#fecaca}.task-row.done{opacity:.75}.task-prio{border-radius:4px;flex-shrink:0;align-self:stretch;width:4px}.task-main{flex:1;min-width:0}.task-title{flex-wrap:wrap;align-items:center;gap:6px;font-weight:600;display:flex}.late-icon{color:var(--danger)}.task-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:3px;font-size:12.5px;display:flex}.task-meta a{color:var(--muted);align-items:center;gap:4px;display:inline-flex}.task-meta a:hover{color:var(--brand)}.due{align-items:center;gap:4px;display:inline-flex}.due-late{color:var(--danger);font-weight:700}.task-actions{gap:6px;display:flex}.task-group{margin-bottom:20px}.task-group h3{margin-bottom:8px}.task-group.g-late h3{color:var(--danger)}.menu-wrap{position:relative}.menu{border:1px solid var(--line);box-shadow:var(--shadow-lg);z-index:20;background:#fff;border-radius:9px;flex-direction:column;min-width:190px;padding:5px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.menu button{text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;padding:8px 10px}.menu button:hover{background:var(--line-2)}.menu-date{color:var(--muted);flex-direction:column;gap:4px;padding:8px 10px;font-size:12px;display:flex}.menu-date input{border:1px solid var(--line);font:inherit;border-radius:6px;padding:5px}.timeline{flex-direction:column;display:flex}.activity{border-bottom:1px solid var(--line-2);gap:12px;padding:12px 0;display:flex}.activity:last-child{border-bottom:0}.activity-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:5px}.activity-body{flex:1;min-width:0}.activity-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.report{white-space:pre-wrap;color:var(--ink-2);background:var(--line-2);border-radius:7px;margin:8px 0 0;padding:8px 10px}.report.clamp{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.att-list{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.att{border:1px solid var(--line);cursor:pointer;font:inherit;color:var(--ink-2);background:#fff;border-radius:6px;align-items:center;gap:5px;padding:3px 8px;font-size:12.5px;display:inline-flex}.att:hover{border-color:var(--brand);color:var(--brand)}.att-row{align-items:center;gap:10px;margin-bottom:6px;display:flex}.audit-list{flex-direction:column;gap:10px;display:flex}.audit{gap:10px;font-size:13px;display:flex}.audit-changes{color:var(--ink-2);margin:4px 0 0;padding-left:16px}.audit-changes li{word-break:break-word;margin:2px 0}.mini-list{flex-direction:column;display:flex}.mini-row{border-bottom:1px solid var(--line-2);cursor:pointer;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 6px;display:flex}.mini-row:last-child{border-bottom:0}.mini-row:hover{background:var(--line-2);border-radius:8px}.mini-date{flex-direction:column;min-width:80px;font-size:12.5px;display:flex}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;overflow:auto}.table{border-collapse:collapse;width:100%}.table th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-bottom:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:#fafbfd;padding:11px 14px;font-size:12px}.table th svg{vertical-align:-2px;margin-left:3px}.table td{border-bottom:1px solid var(--line-2);vertical-align:middle;padding:11px 14px}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:#f8fafc}.empty-cell{text-align:center;color:var(--muted);padding:30px!important}.detail-head{flex-wrap:wrap;justify-content:space-between;gap:16px;margin-bottom:14px;display:flex}.detail-info{flex-wrap:wrap;align-items:center;gap:16px;margin-top:8px;display:flex}.detail-info a,.detail-info span{align-items:center;gap:5px;display:inline-flex}.quick-actions{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.tabs{border-bottom:1px solid var(--line);gap:2px;margin-bottom:14px;display:flex;overflow-x:auto}.tab{cursor:pointer;font:inherit;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 14px;font-weight:500}.tab.active{color:var(--brand);border-bottom-color:var(--brand)}.tab-count{background:var(--line-2);border-radius:10px;margin-left:6px;padding:0 7px;font-size:12px}.stats{flex-wrap:wrap;gap:28px;margin-top:14px;display:flex}.stats>div{flex-direction:column;gap:3px;display:flex}.stats strong{font-size:18px}.kanban{grid-template-columns:repeat(6,minmax(210px,1fr));gap:12px;padding-bottom:10px;display:grid;overflow-x:auto}.kcol{background:#eef2f7;border-radius:10px;flex-direction:column;gap:8px;min-height:240px;padding:8px;display:flex}.kcol.droppable{outline:2px dashed #cbd5e1}.kcol-head{border-bottom:3px solid;justify-content:space-between;align-items:center;padding:6px 6px 8px;font-size:13px;font-weight:700;display:flex}.kcard{box-shadow:var(--shadow);cursor:grab;border:1px solid var(--line);background:#fff;border-radius:8px;flex-direction:column;gap:6px;padding:10px;display:flex}.kcard:hover{border-color:var(--brand)}.kcard-title{font-weight:600}.kcard-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.kcard-foot .avatar{margin-left:auto}.kcard-move{border:1px solid var(--line);font:inherit;border-radius:6px;padding:4px;font-size:12px;display:none}.calendar-card{padding:14px}.legend{color:var(--muted);flex-wrap:wrap;gap:16px;margin-bottom:10px;font-size:13px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:3px;width:12px;height:12px;display:inline-block}.legend .late-sw{border:2px solid var(--danger);background:#fff}.fc{--fc-border-color:var(--line);--fc-today-bg-color:#eff6ff;--fc-button-bg-color:#fff;--fc-button-text-color:var(--ink-2);--fc-button-border-color:var(--line);--fc-button-hover-bg-color:var(--line-2);--fc-button-hover-border-color:#cbd5e1;--fc-button-active-bg-color:var(--brand);--fc-button-active-border-color:var(--brand);font-size:13px}.fc .fc-button-primary:not(:disabled).fc-button-active{color:#fff}.fc .fc-toolbar-title{text-transform:capitalize;font-size:18px}.fc-event{cursor:pointer;padding:1px 3px}.fc .ev-late{box-shadow:inset 3px 0 #dc2626;border-width:2px!important}.fc .ev-done{text-decoration:line-through}.modal-backdrop{z-index:100;background:#0f172a73;justify-content:center;align-items:flex-start;padding:5vh 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{box-shadow:var(--shadow-lg);background:#fff;border-radius:14px;flex-direction:column;width:100%;max-height:90vh;display:flex}.modal-sm{max-width:440px}.modal-md{max-width:600px}.modal-lg{max-width:820px}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-body{padding:18px 20px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);background:#fafbfd;border-radius:0 0 14px 14px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.foot-left{flex-wrap:wrap;gap:8px;margin-right:auto;display:flex}.confirm-msg{font-size:14.5px}.form-grid{grid-template-columns:1fr 1fr;gap:14px 16px;display:grid}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field-full{grid-column:1/-1}.field-label{color:var(--ink-2);font-size:12.5px;font-weight:600}.field-label em{color:var(--danger);font-style:normal}.field-hint{color:var(--muted);font-size:12px}.field input,.field select,.field textarea,.map-row select{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);background:#fff;border-radius:8px;padding:9px 11px}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.field input[type=color]{height:38px;padding:2px}.quick-dates{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.quick-dates .chip{padding:2px 9px;font-size:12px}.check{cursor:pointer;align-items:center;gap:8px;display:flex}.big-check{background:var(--line-2);border-radius:8px;margin-top:4px;padding:10px 12px;font-weight:500}.checklist{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:6px;max-height:180px;margin-bottom:6px;padding:10px;display:flex;overflow-y:auto}.subsection{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.hidden-submit{display:none}.alert{border-radius:8px;grid-column:1/-1;align-items:flex-start;gap:10px;padding:10px 12px;font-size:13px;display:flex}.alert ul{margin:4px 0 0;padding-left:16px}.alert-warn{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.alert-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.alert-info{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}.ss{position:relative}.ss-trigger{border:1px solid var(--line);width:100%;font:inherit;cursor:pointer;text-align:left;color:var(--ink);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:6px;padding:9px 11px;display:flex}.filters .ss-trigger{padding:7px 10px}.ss-trigger span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ss-pop{z-index:50;border:1px solid var(--line);min-width:240px;box-shadow:var(--shadow-lg);background:#fff;border-radius:9px;padding:6px;position:absolute;top:calc(100% + 4px);left:0;right:0}.ss-pop input{border:1px solid var(--line);width:100%;font:inherit;border-radius:6px;margin-bottom:4px;padding:7px 9px}.ss-list{max-height:240px;overflow-y:auto}.ss-opt{cursor:pointer;border-radius:6px;padding:7px 9px}.ss-opt:hover,.ss-opt.sel{background:var(--brand-soft)}.ss-sub{color:var(--muted);font-size:12px}.dropzone{border:2px dashed var(--line);text-align:center;color:var(--muted);border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:30px;display:flex}.map-grid{flex-direction:column;gap:6px;max-height:340px;margin-bottom:12px;display:flex;overflow-y:auto}.map-row{grid-template-columns:1fr 20px 1fr;align-items:center;gap:8px;display:grid}.map-src{flex-direction:column;font-weight:600;display:flex;overflow:hidden}.map-src small{text-overflow:ellipsis;white-space:nowrap;font-weight:400;overflow:hidden}.login{background:linear-gradient(135deg,#eff6ff,#f5f7fb 60%);place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{border:1px solid var(--line);width:100%;max-width:400px;box-shadow:var(--shadow-lg);background:#fff;border-radius:16px;flex-direction:column;gap:14px;padding:30px;display:flex}.splash{place-content:center;justify-items:center;gap:12px;min-height:100vh;display:grid}.spinner{border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toasts{z-index:200;flex-direction:column;gap:8px;max-width:420px;display:flex;position:fixed;bottom:20px;right:20px}.toast{color:#fff;box-shadow:var(--shadow-lg);background:#0f172a;border-radius:10px;align-items:center;gap:10px;padding:12px 16px;animation:.2s ease-out up;display:flex}.toast-error{background:#991b1b}.toast-info{background:#1e40af}@keyframes up{0%{opacity:0;transform:translateY(8px)}}@media (width<=1100px){.grid-3{grid-template-columns:1fr 1fr}.hide-md{display:none}}@media (width<=860px){.only-sm{display:inline-flex!important}.sidebar{transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.drawer-open .sidebar{transform:none}.drawer-open .backdrop-sm{z-index:35;background:#0f172a66;display:block;position:fixed;inset:0}.topbar{gap:8px;padding:8px 12px}.content{padding:14px}.kpis{grid-template-columns:1fr 1fr}.grid-2,.grid-3{grid-template-columns:1fr}.hide-sm{display:none}.form-grid{grid-template-columns:1fr}.filter-search{min-width:100%}.kanban{scroll-snap-type:x mandatory;grid-template-columns:repeat(6,78vw)}.kcol{scroll-snap-align:start}.kcard-move{display:block}.modal-backdrop{padding:0}.modal{border-radius:0;min-height:100vh;max-height:100vh}.task-row{flex-wrap:wrap}.gsearch input::placeholder{color:#0000}.fc .fc-toolbar{flex-direction:column;gap:8px}}.fc a{color:inherit;text-decoration:none}.fc .fc-daygrid-day-number,.fc .fc-col-header-cell-cushion{color:var(--ink-2)}.task-list{container-type:inline-size}@container (width<=640px){.task-row{flex-wrap:wrap}.task-main{flex-basis:calc(100% - 60px)}.task-actions{justify-content:flex-end;width:100%}}
