*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fafbfc;--bg-subtle:#f1f5f9;--surface:#fff;--border:#e2e8f0;--border-strong:#cbd5e1;--text:#0f172a;--text-secondary:#0f172a;--text-muted:#3f4756;--primary:#4f46e5;--primary-hover:#4338ca;--primary-light:#eef2ff;--primary-soft:#c7d2fe;--success:#059669;--success-light:#d1fae5;--success-text:#065f46;--warning:#d97706;--warning-light:#fef3c7;--warning-text:#92400e;--info:#0284c7;--info-light:#dbeafe;--info-text:#1e40af;--danger:#dc2626;--danger-light:#fee2e2;--danger-text:#991b1b;--shadow-xs:0 1px 2px 0 #0f172a0a;--shadow-md:0 4px 6px -1px #0f172a0f, 0 2px 4px -2px #0f172a0a;--shadow-xl:0 20px 25px -5px #0f172a1a, 0 8px 10px -6px #0f172a0a;--shadow-glow:0 0 0 4px #4f46e51f;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-2xl:20px;--t-fast:.15s cubic-bezier(.4, 0, .2, 1);--t-normal:.25s cubic-bezier(.4, 0, .2, 1)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg);color:var(--text);letter-spacing:-.011em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI Variable,Segoe UI,system-ui,sans-serif;line-height:1.55}a{color:var(--primary);transition:color var(--t-fast);text-decoration:none}a:hover{color:var(--primary-hover)}h1,h2,h3{color:var(--text);letter-spacing:-.022em}h1{letter-spacing:-.02em;font-size:22px;font-weight:600}h2{font-size:19px;font-weight:600}h3{font-size:15px;font-weight:600}.app{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);z-index:50;width:260px;min-width:0;height:100vh;transition:width var(--t-normal), padding var(--t-normal);flex-direction:column;flex-shrink:0;padding:18px 14px 14px;display:flex;position:sticky;top:0;overflow:visible auto}.sidebar-toggle{background:var(--bg-subtle);border:1px solid var(--border);cursor:pointer;width:26px;height:26px;color:var(--text-secondary);z-index:60;transition:all var(--t-fast);border-radius:999px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:22px;right:14px}.sidebar-toggle:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.sidebar-toggle svg{width:12px;height:12px;transition:transform var(--t-normal)}.sidebar.collapsed .sidebar-toggle svg{transform:rotate(180deg)}.sidebar.collapsed{width:68px;padding:18px 8px 14px}.sidebar.collapsed .brand-name,.sidebar.collapsed .sidebar-link span:not(.sidebar-badge),.sidebar.collapsed .user-info,.sidebar.collapsed .user-logout{display:none}.sidebar.collapsed .sidebar-brand{justify-content:center;gap:0;padding:40px 0 16px}.sidebar.collapsed .sidebar-toggle{top:10px;right:50%;transform:translate(50%)}.sidebar.collapsed .sidebar-link{justify-content:center;padding:11px 8px;position:relative}.sidebar.collapsed .sidebar-link.active:before{display:none}.sidebar.collapsed .sidebar-link.active{background:var(--primary);color:#fff}.sidebar.collapsed .sidebar-link.active svg{color:#fff}.sidebar.collapsed .sidebar-user{justify-content:center;gap:0;padding:10px 0 4px}.sidebar.collapsed .sidebar-link[data-label]:hover:after{content:attr(data-label);background:var(--text);color:#fff;white-space:nowrap;z-index:200;pointer-events:none;box-shadow:var(--shadow-md);border-radius:6px;padding:6px 11px;font-size:13.5px;font-weight:500;position:absolute;top:50%;left:calc(100% + 12px);transform:translateY(-50%)}.sidebar.collapsed .sidebar-link[data-label]:hover:before{content:"";background:var(--text);z-index:199;width:8px;height:8px;position:absolute;top:50%;left:calc(100% + 6px);transform:translateY(-50%)rotate(45deg)}.sidebar.collapsed .sidebar-badge{min-width:14px;margin:0;padding:1px 4px;font-size:10px;position:absolute;top:4px;right:4px}.sidebar-brand{color:var(--text);letter-spacing:-.02em;align-items:center;gap:11px;margin-bottom:10px;padding:4px 10px 12px;font-size:15px;font-weight:600;text-decoration:none;display:flex}.sidebar-brand:hover{color:var(--text);text-decoration:none}.brand-icon{background:url(/logo.png) 50%/contain no-repeat;flex-shrink:0;width:40px;height:40px}.brand-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar-link{border-radius:var(--r-md);color:var(--text-secondary);transition:all var(--t-fast);align-items:center;gap:11px;padding:8px 10px;font-size:14px;font-weight:500;line-height:1.2;text-decoration:none;display:flex;position:relative}.sidebar-link svg{flex-shrink:0;width:17px;height:17px}.sidebar-link:hover{background:var(--bg-subtle);color:var(--text);text-decoration:none}.sidebar-link.active{background:var(--primary-light);color:var(--primary);font-weight:600}.sidebar-link.active svg{color:var(--primary)}.sidebar-badge{background:var(--danger);color:#fff;text-align:center;border-radius:999px;min-width:18px;margin-left:auto;padding:2px 6px;font-size:11px;font-weight:700;line-height:1}.sidebar-footer{margin-top:12px;padding-top:6px}@media (width>=769px){.sidebar{z-index:60;width:260px;height:100vh;position:fixed;top:0;left:0;overflow-y:auto}.main-content{transition:margin-left var(--t-normal);margin-left:260px}.sidebar.collapsed~.main-content{margin-left:68px}}@media (width<=768px){.sidebar-toggle{display:none}}.sidebar-user{align-items:center;gap:10px;margin-top:6px;padding:10px 8px 4px;display:flex}.user-avatar{background:var(--primary);color:#fff;letter-spacing:.02em;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:13.5px;font-weight:600;display:flex}.user-info{flex:1;min-width:0}.user-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;line-height:1.2;overflow:hidden}.user-role{color:var(--text-muted);margin-top:2px;font-size:12px}.sidebar-user{position:relative}.user-switch{text-align:left;cursor:pointer;min-width:0;color:inherit;border-radius:var(--r-md);background:0 0;border:none;flex:1;align-items:center;gap:10px;padding:0;font-family:inherit;display:flex}.user-switch:hover .user-name{color:var(--primary)}.acct-menu{z-index:120;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);border-radius:12px;flex-direction:column;padding:5px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;right:0}.acct-menu>button{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:9px 11px;font-family:inherit;display:flex}.acct-menu>button:hover{background:var(--bg-subtle)}.acct-name{color:var(--text);font-size:14.5px;font-weight:600}.acct-email{color:var(--text-muted);word-break:break-all;font-size:12.5px}.user-logout{color:var(--text-muted);border-radius:var(--r-sm);transition:all var(--t-fast);padding:7px;display:flex}.user-logout svg{width:16px;height:16px}.user-logout:hover{color:var(--danger);background:var(--danger-light)}.main-content{flex-direction:column;flex:1;min-width:0;display:flex}.container{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:32px 36px}.page-col{width:100%;max-width:720px;margin-left:auto;margin-right:auto}.page-col>.card{max-width:none!important}.dp{position:relative}.dp-input{text-align:left;cursor:pointer;width:100%;color:var(--text);justify-content:space-between;align-items:center;gap:8px;display:flex}.dp-input.dp-empty>span{color:var(--text-muted)}.dp-input>svg{color:var(--text-muted);flex-shrink:0}.dp-pop{z-index:60;background:var(--surface,#fff);border:1px solid var(--border);border-radius:14px;width:286px;max-width:calc(100vw - 32px);padding:12px;animation:.12s dp-in;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 32px -8px #10182838,0 2px 8px #10182814}@keyframes dp-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.dp-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.dp-title{color:var(--text);font-size:14px;font-weight:700}.dp-nav{gap:4px;display:flex}.dp-nav button{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);border-radius:8px;justify-content:center;align-items:center;font-size:17px;line-height:1;transition:all .12s;display:inline-flex}.dp-nav button:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light,#eef2ff)}.dp-wd{grid-template-columns:repeat(7,1fr);margin-bottom:4px;display:grid}.dp-wd span{text-align:center;color:var(--text-muted);padding:4px 0;font-size:12px;font-weight:600}.dp-days{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.dp-day{aspect-ratio:1;cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:14px;transition:background .1s,color .1s;display:inline-flex}.dp-day:hover:not(:disabled){background:var(--primary-light,#eef2ff);color:var(--primary)}.dp-out{color:var(--text-muted);opacity:.5}.dp-today{box-shadow:inset 0 0 0 1.5px var(--primary,#4f46e5);color:var(--primary);font-weight:600}.dp-sel{font-weight:600;background:var(--primary,#4f46e5)!important;color:#fff!important}.dp-day:disabled{color:var(--text-muted);opacity:.35;cursor:default}.dp-foot{border-top:1px solid var(--border);justify-content:space-between;margin-top:8px;padding-top:8px;display:flex}.dp-link{cursor:pointer;color:var(--primary,#4f46e5);background:0 0;border:none;border-radius:6px;padding:2px 4px;font-size:14px;font-weight:600}.dp-link:hover{text-decoration:underline}.doc-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.doc-folder{cursor:pointer;flex-direction:column;gap:12px;padding:16px;transition:border-color .12s,box-shadow .12s;display:flex}.doc-folder:hover{border-color:var(--primary,#4f46e5);box-shadow:0 4px 16px -6px #4f46e52e}.doc-folder-ico{background:var(--primary-light,#eef2ff);width:40px;height:40px;color:var(--primary,#4f46e5);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.doc-folder-name{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;overflow:hidden}.doc-folder-count{color:var(--text-muted);margin-top:2px;font-size:13px}.doc-folder-access{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.doc-folder-access span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.doc-folder-actions{align-items:center;gap:6px;margin-top:2px;display:flex}.doc-del{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:7px;flex-shrink:0;padding:5px;display:inline-flex}.doc-del:hover{color:var(--danger,#ef4444);background:var(--danger-light,#fee2e2)}.doc-files{flex-direction:column;display:flex}.doc-file{align-items:center;gap:13px;padding:12px 2px;display:flex}.doc-file+.doc-file{border-top:1px solid var(--border)}.doc-file-ico{background:var(--bg-subtle);width:36px;height:36px;color:var(--text-secondary);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.doc-file-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.doc-file-meta{color:var(--text-muted);margin-top:2px;font-size:13px}.doc-overlay{z-index:200;background:#0f172a73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.doc-modal{background:var(--surface,#fff);border-radius:16px;width:420px;max-width:100%;max-height:88vh;padding:20px 22px;overflow-y:auto;box-shadow:0 20px 50px -12px #10182859}.doc-modal-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.doc-x{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:7px;padding:4px;display:inline-flex}.doc-x:hover{background:var(--bg-subtle);color:var(--text)}.mobile-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;width:42px;height:42px;color:var(--text-secondary);justify-content:center;align-items:center;margin:14px 14px 0;font-size:20px;display:none}.mobile-menu:hover{background:var(--bg-subtle);color:var(--text)}.sidebar-close{display:none}.sidebar-overlay{z-index:49;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a80;display:none;position:fixed;inset:0}.sidebar-overlay.open{display:block}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:24px;box-shadow:0 1px 2px #0f172a08}.task-title{letter-spacing:-.01em;white-space:pre-wrap;font-size:18px;font-weight:600;line-height:1.4}.task-meta{flex-wrap:wrap;align-items:center;gap:10px 22px;margin-top:14px;font-size:14.5px;display:flex}.task-meta>span+span:before{content:"·";color:var(--text-muted);margin-right:10px}.task-sec{border-top:1px solid var(--border);margin-top:22px;padding-top:20px}.task-sec>.form-label{margin-bottom:10px}.upd-list{flex-direction:column;gap:6px;display:flex}.upd-day{text-align:center;color:#94a3b8;margin:8px 0 2px;font-size:12px}.files-toggle{background:var(--bg-subtle);cursor:pointer;color:var(--text);font-size:13.5px;font:inherit;border:none;border-radius:999px;align-items:center;gap:7px;padding:5px 12px;display:inline-flex}.upd{display:flex}.upd-bubble{background:var(--bg-subtle);border-radius:4px 14px 14px;max-width:86%;padding:9px 13px 7px}.upd-text{white-space:pre-wrap;word-break:break-word;font-size:14.5px;line-height:1.5}.upd-meta{color:var(--text-muted);text-align:right;margin-top:2px;font-size:11.5px}.upd-file{border:1px solid var(--border);background:var(--surface);max-width:100%;font:inherit;color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:7px;padding:8px 12px;font-size:13.5px;display:inline-flex}.upd-file svg{color:var(--text-muted);flex-shrink:0}.upd-file span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upd.mine{justify-content:flex-end}.upd.mine .upd-bubble{color:#0b3d20;background:#d9fdd3;border-top-left-radius:14px;border-top-right-radius:4px}.upd.mine .upd-meta{color:#0b3d209e}.upd-sys{color:var(--text-muted);align-items:center;gap:8px;padding:8px 0 8px 2px;font-size:13.5px;display:flex}.upd-dot{background:var(--border-strong);border-radius:50%;flex-shrink:0;width:7px;height:7px}.upd-sys.s-done .upd-dot{background:var(--success)}.upd-sys.s-progress .upd-dot{background:var(--info)}.upd-sys.s-pending .upd-dot{background:var(--warning)}.upd-seen{color:var(--text-muted);font-size:12.5px}.tm-devices{margin-top:10px}.tm-dev-head{color:var(--text-muted);margin-bottom:4px;font-size:12.5px;font-weight:600}.tm-dev-row{align-items:center;gap:7px;padding:2px 0;font-size:13.5px;display:flex}.upd-more{font:inherit;color:var(--primary);cursor:pointer;text-align:left;background:0 0;border:none;padding:6px 2px;font-size:13px}select.status-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233f4756' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:14px;padding-right:32px;font-weight:500}select.status-select.st-pending{background-color:var(--warning-light);color:var(--warning-text);border-color:#fde68a}select.status-select.st-progress{background-color:var(--info-light);color:var(--info-text);border-color:#bfdbfe}select.status-select.st-done{background-color:var(--success-light);color:var(--success-text);border-color:#a7f3d0}select.status-select.status-pill{letter-spacing:.01em;background-position:right 9px center;background-size:12px;border-radius:999px;width:auto;max-width:160px;min-height:0;padding:3px 26px 3px 11px;font-size:12.5px;font-weight:500;line-height:1.4}@media (pointer:coarse){select.status-select.status-pill{min-height:34px;font-size:14px}}.composer{border:1px solid var(--border);background:var(--surface);border-radius:12px;transition:border-color .15s,box-shadow .15s}.composer:focus-within{border-color:var(--primary-soft);box-shadow:0 0 0 3px var(--primary-light)}.composer-input{resize:none;width:100%;font:inherit;min-height:38px;max-height:200px;color:var(--text);background:0 0;border:none;outline:none;padding:10px 13px 2px;font-size:14px;line-height:1.5;display:block}.composer-input::placeholder{color:var(--text-muted);opacity:.75}.composer-input:disabled{color:var(--text-muted)}.composer-bar{justify-content:space-between;align-items:center;padding:2px 6px 6px;display:flex}.composer-attach{width:34px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.composer-attach:hover:not(:disabled){background:var(--bg-subtle);color:var(--text)}.composer-attach:disabled{opacity:.5;cursor:default}.pill{background:var(--bg-subtle);color:var(--text-secondary);white-space:nowrap;border-radius:999px;align-items:center;padding:4px 11px;font-size:13px;font-weight:600;display:inline-flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:22px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:16px 18px}.stat-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.stat-card .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px;font-size:12px;font-weight:600}.stat-card .value{letter-spacing:-.03em;color:var(--text);font-size:32px;font-weight:700;line-height:1}button.stat-card{text-align:left;width:100%;color:inherit;cursor:pointer;font-family:inherit}.stat-card.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary), var(--shadow-md)}.stat-card.danger.active{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.filters{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.filters .form-control{background:var(--surface);border:1px solid var(--border);flex:1;width:auto;min-width:160px}.filters .form-control:first-child{flex:2}.filters select.form-control{appearance:none;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233f4756' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:15px;padding-right:36px;overflow:hidden}.filters select.form-control.has-value{border-color:var(--primary-soft);background-color:var(--primary-light);color:var(--primary);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234f46e5' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");font-weight:500}.form-group{margin-bottom:18px}.form-label,.form-group label{color:var(--text-secondary);letter-spacing:-.005em;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group small{color:var(--text-muted);margin-top:6px;font-size:13.5px;display:block}.form-control{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);width:100%;color:var(--text);transition:all var(--t-fast);padding:9px 12px;font-family:inherit;font-size:14.5px}.form-control::placeholder{color:#94a3b8}.form-control:hover:not(:disabled):not(:focus){border-color:var(--border-strong)}.form-control:focus{border-color:var(--primary);box-shadow:var(--shadow-glow);outline:none}.form-control:disabled{background:var(--bg-subtle);color:var(--text-secondary);cursor:not-allowed;box-shadow:none}textarea.form-control{resize:vertical;min-height:110px;line-height:1.5}select.form-control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:36px}.btn{border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);white-space:nowrap;letter-spacing:-.005em;border:1px solid #0000;justify-content:center;align-items:center;padding:8px 14px;font-family:inherit;font-size:14.5px;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.btn:hover{text-decoration:none}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px #0f172a14}.btn-primary:hover{background:var(--primary-hover);color:#fff;transform:translateY(-1px);box-shadow:0 2px 8px #4f46e538}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--surface);color:var(--text-secondary);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background:var(--bg-subtle);color:var(--text);border-color:var(--text-muted)}.btn-sm{border-radius:var(--r-sm);padding:6px 12px;font-size:13.5px}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.table-wrap>table{width:100%;max-width:100%}table{border-collapse:collapse;width:100%;font-size:14px}thead{background:var(--bg-subtle)}th,td{text-align:left;border-bottom:1px solid var(--border);padding:14px 16px}th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:12.5px;font-weight:600}tbody tr{transition:background-color var(--t-fast)}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--bg-subtle)}td strong{color:var(--text);letter-spacing:.04em;font-size:14px;font-weight:600}.badge{letter-spacing:.01em;border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:12px;font-weight:500;display:inline-flex;background:var(--bg-subtle)!important;color:var(--text-secondary)!important}.badge:before{content:"";background:currentColor;border-radius:999px;width:6px;height:6px}.badge-warn{border-color:#fde68a;background:var(--warning-light)!important;color:var(--warning-text)!important}.badge-info{border-color:#bfdbfe;background:var(--info-light)!important;color:var(--info-text)!important}.badge-ok{border-color:#a7f3d0;background:var(--success-light)!important;color:var(--success-text)!important}.badge-bad{border-color:#fecaca;background:var(--danger-light)!important;color:var(--danger-text)!important}.badge-neutral{border-color:var(--border);background:var(--bg-subtle)!important;color:var(--text-secondary)!important}tr[data-overdue="1"] td:first-child{box-shadow:inset 4px 0 0 0 var(--danger,#ef4444)}.login-wrap{background-color:#0f172a;background-image:radial-gradient(at 20% 25%,#6366f166 0,#0000 50%),radial-gradient(at 80% 30%,#8b5cf659 0,#0000 55%),radial-gradient(at 60% 80%,#22d3ee40 0,#0000 50%),radial-gradient(at 15% 90%,#f472b633 0,#0000 45%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.login-wrap:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0}.login-card{border-radius:var(--r-2xl);z-index:1;background:#fffffffa;width:100%;max-width:420px;padding:40px 36px;position:relative;box-shadow:0 25px 50px -12px #0f172a80,0 0 0 1px #ffffff1a}.login-card:before{content:"";background:url(/logo.png) 50%/contain no-repeat;width:68px;height:68px;margin:0 auto 20px;display:block}.login-card h1{text-align:center;letter-spacing:-.025em;margin-bottom:6px;font-size:24px;font-weight:700}.login-card .subtitle{color:var(--text-muted);text-align:center;margin-bottom:28px;font-size:14px}@media (width<=1280px) and (width>=769px){.sidebar.open{width:280px;height:100vh;box-shadow:var(--shadow-xl);z-index:200;position:fixed;top:0;left:0}}@media (width<=768px){.sidebar,.sidebar.collapsed{border-right:none;border-left:1px solid var(--border);width:280px;transition:right var(--t-normal);box-shadow:var(--shadow-xl);z-index:200;padding:24px 18px 14px;position:fixed;top:0;left:auto;right:-290px}.sidebar.open,.sidebar.collapsed.open{left:auto;right:0}.sidebar.collapsed .brand-name,.sidebar.collapsed .sidebar-link span:not(.sidebar-badge),.sidebar.collapsed .user-info,.sidebar.collapsed .user-logout{display:initial}.sidebar.collapsed .sidebar-brand{justify-content:flex-start;gap:11px;padding:4px 10px 16px}.sidebar.collapsed .sidebar-link{justify-content:flex-start;padding:9px 11px}.sidebar.collapsed .sidebar-user{justify-content:flex-start;gap:10px;padding:10px 8px 4px}.sidebar-close{background:var(--bg-subtle);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;z-index:2;border:none;border-radius:999px;justify-content:center;align-items:center;font-size:15px;display:flex;position:absolute;top:16px;right:14px}.sidebar-close:hover{color:var(--text)}.mobile-menu{display:inline-flex}.sidebar-toggle{display:none}.container{padding:16px}.card{padding:18px}h1{font-size:22px}th,td{padding:10px 12px;font-size:14px}.filters{padding:10px}.filters .form-control{flex:1;min-width:0}.login-card{padding:32px 24px}.container [style*="grid-template-columns:1fr 1fr"],.container [style*="grid-template-columns: 1fr 1fr"]{grid-template-columns:1fr!important}}@media print{.sidebar,.mobile-menu,.btn,.filters{display:none}.main-content{width:100%}.card{box-shadow:none;border:none;padding:0}}@media (width<=768px){.page-header{flex-direction:column;align-items:flex-start;gap:12px}.page-header>div:last-child{justify-content:flex-start;width:100%}.stats{grid-template-columns:repeat(2,1fr)}.card{padding:14px}.table-wrap{-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px;overflow-x:auto}.table-wrap table{min-width:560px}}@media (pointer:coarse){.btn{min-height:40px;padding:8px 14px}.btn-sm{min-height:34px;padding:6px 10px}input.form-control,select.form-control,textarea.form-control,.composer-input{min-height:40px;font-size:16px}.composer-attach{min-width:44px;min-height:40px}.doc-del,.doc-x,.sidebar-close,.user-logout{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}}.table-wrap table{font-size:14.5px}.table-wrap thead th{letter-spacing:.01em;text-transform:none;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;background:0 0;padding:11px 14px;font-size:12.5px;font-weight:600}.table-wrap tbody td{vertical-align:middle;padding:13px 14px;line-height:1.5}.table-wrap tbody tr{transition:background var(--t-fast), box-shadow var(--t-fast)}.table-wrap tbody tr:hover{background:#0f172a05}.table-wrap tbody td:nth-child(3),.table-wrap tbody td:first-child{color:var(--text-secondary)}.btn{letter-spacing:-.005em;transition:all var(--t-fast);font-weight:600}.btn-primary{box-shadow:none}.btn-primary:hover,.btn-primary:active{box-shadow:none;transform:none}.btn-secondary{background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);box-shadow:none}.btn-secondary:hover{color:var(--text);border-color:var(--border-strong);background:var(--bg-subtle)}.stat-card .value{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;font-size:26px}.stat-card .label{font-weight:500}@media (width<=640px){.filters{grid-template-columns:1fr 1fr;gap:8px;display:grid}.filters .form-control{width:100%;min-width:0}.filters .form-control:first-child,.filters select:first-of-type:nth-last-of-type(odd){grid-column:1/-1}.btn{min-height:40px}.btn-sm{min-height:34px}.page-header{gap:10px}.page-header h1{font-size:24px}}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.form-control:focus-visible{outline:none}.page-header h1{letter-spacing:-.028em}td:empty:after{content:"-";color:var(--text-muted);opacity:.5}@media (width<=640px){.table-wrap.has-cards{box-shadow:none;background:0 0;border:none;margin:0;padding:0;overflow:visible}.table-wrap.has-cards>table.cards-table,.table-wrap.has-cards table.cards-table{width:100%;min-width:0;font-size:14px;display:block;overflow:visible}.cards-table thead{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cards-table tbody{display:block}.cards-table tbody tr[data-row]{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg,12px);box-shadow:var(--shadow-xs);margin:0 0 12px;padding:14px 16px 14px 18px;display:block;position:relative}.cards-table tbody tr[data-row]:last-child{margin-bottom:0}.cards-table tbody tr[data-row]:hover{background:var(--surface);box-shadow:var(--shadow-xs)}.cards-table tbody td{text-align:left;white-space:normal;border:0;justify-content:flex-start;align-items:flex-start;gap:10px;padding:5px 0;line-height:1.5;display:flex}.cards-table tbody td:before{content:attr(data-label);text-align:left;text-transform:none;letter-spacing:0;color:var(--text-muted);flex:0 0 92px;padding-top:1px;font-size:12.5px;font-weight:600}.cards-table tbody td:not([data-label]){text-align:center;display:table-cell}.cards-table tbody td:not([data-label]):before{content:none}.cards-table tbody td:empty{display:none}.cards-table tbody td:empty:after{content:none}.cards-table tbody td[data-label=Task\ ID],.cards-table tbody td[data-label=Task],.cards-table tbody td[data-label=Staff],.cards-table tbody td[data-label=Title]{text-align:left;border-bottom:.5px solid var(--border);justify-content:flex-start;align-items:center;margin-bottom:8px;padding:0 0 12px}.cards-table tbody td[data-label=Task\ ID]:before,.cards-table tbody td[data-label=Task]:before,.cards-table tbody td[data-label=Staff]:before,.cards-table tbody td[data-label=Title]:before{content:none}.cards-table tbody td[data-label=Task\ ID] strong,.cards-table tbody td[data-label=Task] strong,.cards-table tbody td[data-label=Title] strong{font-size:16px}.cards-table tbody td[data-label=Task]>div,.cards-table tbody td[data-label=Staff]>span,.cards-table tbody td[data-label=Title]>*{width:100%}.cards-table tbody td[data-label=Last\ run],.cards-table tbody td[data-label=Runs]{display:none}.cards-table tbody td[data-label=Status] [data-inline-status]{cursor:pointer}.cards-table tbody td[data-label=Description]{text-align:left;flex-direction:column;align-items:stretch;gap:2px;padding-top:2px}.cards-table tbody td[data-label=Description]:before{flex-basis:auto}.cards-table tbody td[data-label=Description]>div{justify-content:flex-start}.cards-table tbody td[data-label=Actions]{border-top:1px solid var(--border);flex-direction:column;align-items:stretch;gap:8px;margin-top:4px;padding-top:12px}.cards-table tbody td[data-label=Actions]:before{content:none}.cards-table tbody td[data-label=Actions] .btn{text-align:center;width:100%;min-height:40px;line-height:26px;display:block}.cards-table tbody tr[data-overdue="1"] td:first-child{box-shadow:none}}.notif-row{color:var(--text);border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:11px 14px;text-decoration:none;transition:background .12s;display:flex}.notif-row:last-child{border-bottom:none}.notif-row:hover{background:var(--bg-subtle)}.notif-ico{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.notif-ico svg{width:17px;height:17px}.notif-body{flex:1;min-width:0;padding-top:1px}.notif-text{color:var(--text);font-size:14.5px;line-height:1.45}.notif-text b{font-weight:600}.notif-status{border-radius:999px;margin-left:3px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.notif-status.ns-done{background:var(--success-light);color:var(--success-text)}.notif-status.ns-progress{background:var(--info-light);color:var(--info-text)}.notif-status.ns-pending{background:var(--warning-light);color:var(--warning-text)}.notif-row.unread .notif-text{font-weight:500}.notif-row:not(.unread) .notif-text{color:var(--text-muted)}.notif-meta{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:7px;padding-top:2px;display:flex}.notif-time{color:var(--text-muted);white-space:nowrap;font-size:12px}.notif-dot{background:var(--primary,#4f46e5);border-radius:50%;width:8px;height:8px}.notif-count{text-align:center;background:var(--primary);color:#fff;border-radius:999px;min-width:19px;padding:2px 6px;font-size:11px;font-weight:700;line-height:1.2}.notif-group{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);padding:14px 16px 6px;font-size:12px;font-weight:600}.empty-state{text-align:center;padding:52px 24px}.empty-state-ico{background:var(--primary-light,#eef2ff);width:60px;height:60px;color:var(--primary,#4f46e5);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.empty-state-ico svg{width:28px;height:28px}.empty-state-title{color:var(--text);margin:0;font-size:16px;font-weight:600}.empty-state-sub{color:var(--text-muted);max-width:300px;margin:7px auto 0;font-size:14px;line-height:1.5}[data-inline-status]{cursor:pointer}.quick-date{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all var(--t-fast);border-radius:999px;padding:3px 10px;font-family:inherit;font-size:13px}.quick-date:hover{border-color:var(--primary);color:var(--primary)}.quick-date[data-on="1"]{background:var(--primary-light);border-color:var(--primary-soft);color:var(--primary);font-weight:600}@media (width<=430px){.freq-seg{flex-wrap:wrap}.freq-seg>button{border-left:none!important;flex:46%!important}}:root{--ease-ios:cubic-bezier(.32, .72, 0, 1)}.btn,.stat-card,.quick-date,.sidebar-link{transition:transform .2s var(--ease-ios), background var(--t-fast), box-shadow var(--t-fast), border-color var(--t-fast), color var(--t-fast)}.btn:active,.stat-card:active,.quick-date:active{transform:scale(.96)}tbody tr[data-row]:active{transform:scale(.995)}.doc-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}@keyframes ios-in{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:no-preference){.container>*{animation:ios-in .42s var(--ease-ios) both}}input[type=checkbox]{appearance:none;background:var(--border-strong);cursor:pointer;vertical-align:middle;width:44px;height:26px;transition:background .25s var(--ease-ios);border-radius:999px;flex-shrink:0;margin:0;position:relative}input[type=checkbox]:after{content:"";width:22px;height:22px;transition:transform .25s var(--ease-ios);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0f172a40}input[type=checkbox]:checked{background:var(--primary)}input[type=checkbox]:checked:after{transform:translate(18px)}input[type=checkbox]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.tab-bar{display:none}@media (width<=768px){.tab-bar{z-index:90;-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border-top:1px solid var(--border);padding:6px 2px calc(6px + env(safe-area-inset-bottom,0px));background:#ffffffe6;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-bar>a,.tab-bar>button{min-width:0;color:var(--text-muted);cursor:pointer;transition:transform .18s var(--ease-ios), color var(--t-fast);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:4px 0;font-family:inherit;font-size:11.5px;font-weight:500;text-decoration:none;display:flex;position:relative}.tab-bar>a.active{color:var(--primary)}.tab-bar>a:active,.tab-bar>button:active{transform:scale(.9)}.tab-bar svg{width:23px;height:23px}.tab-badge{background:var(--danger);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:15px;height:15px;margin-left:5px;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;top:-1px;left:50%}.container{padding-bottom:74px}.mobile-menu{display:none}}
