@import"https://fonts.bunny.net/css?family=inter:300,400,500,600,700,800,900&display=swap";:root{--bg: #f0f2f5;--card: #ffffff;--ink: #1a1d26;--muted: #6b7280;--line: #e2e5ea;--border: #e2e5ea;--dark: #0f1117;--dark2: #1a1d28;--brand: #6366f1;--brand-light: #eef2ff;--brand-hover: #4f46e5;--green: #10b981;--green-light: #ecfdf5;--red: #ef4444;--red-light: #fef2f2;--yellow: #f59e0b;--yellow-light: #fffbeb;--shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.07), 0 2px 4px -2px rgba(0,0,0,.05);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.08), 0 4px 6px -4px rgba(0,0,0,.05);--radius: 12px;--radius-lg: 16px;--transition: all .2s cubic-bezier(.4,0,.2,1)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:var(--brand);text-decoration:none}.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--dark) 0%,var(--dark2) 100%);color:#fff;padding:0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid rgba(255,255,255,.06)}.brand{display:flex;gap:12px;align-items:center;padding:20px 20px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.logo{width:40px;height:40px;border-radius:10px;background:#fff;padding:5px;display:grid;place-items:center;flex-shrink:0}.logo img{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.brand h1{font-size:15px;margin:0;font-weight:700;letter-spacing:-.02em}.brand p{margin:2px 0 0;color:#fff6;font-size:11px;font-weight:500}.nav{display:flex;flex-direction:column;gap:2px;padding:12px;overflow-y:auto;flex:1}.nav a,.nav button{border:0;background:transparent;color:#ffffff8c;padding:10px 14px;border-radius:8px;text-align:left;cursor:grab;font-weight:600;text-decoration:none;display:flex;align-items:center;gap:10px;font-size:13px;transition:var(--transition);white-space:nowrap}.nav a:active,.nav button:active{cursor:grabbing}.nav a.active{background:#6366f133;color:#fff;font-weight:700}.nav a:hover:not(.active){background:#ffffff12;color:#ffffffd9}.nav a.dragging{opacity:.4;border:1px dashed rgba(255,255,255,.3)}.reorder-hint{font-size:10px;color:#fff3;padding:0 20px 8px}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-group-toggle{border:0;background:transparent;color:#ffffff8c;padding:10px 14px;border-radius:8px;text-align:left;cursor:grab;font-weight:600;text-decoration:none;display:flex;align-items:center;gap:10px;font-size:13px;transition:var(--transition);white-space:nowrap;width:100%;justify-content:space-between}.nav-group-toggle:hover{background:#ffffff12;color:#ffffffd9}.nav-group-toggle.group-active{background:#6366f126;color:#fff}.nav-group-toggle .chevron{font-size:10px;transition:transform .2s;margin-left:auto;color:#ffffff4d}.nav-group-toggle.open .chevron{transform:rotate(90deg)}.nav-group-items{display:none;flex-direction:column;gap:2px;padding-left:10px}.nav-group-items.open{display:flex}.nav-group-items a{border:0;background:transparent;color:#ffffff73;padding:8px 14px;border-radius:8px;text-align:left;cursor:pointer;font-weight:500;text-decoration:none;display:flex;align-items:center;gap:10px;font-size:12px;transition:var(--transition);white-space:nowrap;border-left:2px solid rgba(255,255,255,.1)}.nav-group-items a.active{background:#6366f133;color:#fff;font-weight:700;border-left-color:#818cf8}.nav-group-items a:hover:not(.active){background:#ffffff12;color:#ffffffd9;border-left-color:#ffffff40}.sidebar-footer{margin-top:auto;padding:16px;border-top:1px solid rgba(255,255,255,.08);background:#00000026}.sidebar-footer .user-info{font-size:12px;color:#ffffff80;margin-bottom:8px;font-weight:500}.sidebar-footer .user-info strong{color:#fffc;font-weight:600;display:block}.sidebar-footer .btn-logout{width:100%;background:#ffffff0f;color:#fff9;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:8px 12px;font-size:12px;font-weight:600;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;gap:6px}.sidebar-footer .btn-logout:hover{background:#ef444426;color:#fca5a5;border-color:#ef44444d}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:64px;background:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.topbar h2{font-size:18px;font-weight:700;margin:0;letter-spacing:-.02em}.content{padding:24px 28px 40px;flex:1}.topbar-right{display:flex;align-items:center;gap:14px}.notif-wrap{position:relative}.notif-bell{position:relative;background:none;border:1px solid var(--line);border-radius:10px;width:38px;height:38px;cursor:pointer;font-size:16px;display:grid;place-items:center;color:var(--ink);transition:var(--transition)}.notif-bell:hover{background:#f9fafb}.notif-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;line-height:1}.notif-panel{display:none;position:absolute;right:0;top:46px;width:min(360px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);z-index:50;overflow:hidden}.notif-panel.open{display:block}.notif-panel-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}.notif-panel-list{max-height:380px;overflow-y:auto}.notif-empty{padding:22px 14px;text-align:center;color:var(--muted);font-size:13px}.notif-item{display:block;padding:11px 14px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);transition:background .15s}.notif-item:hover{background:#f9fafb}.notif-item.unread{background:var(--brand-light)}.notif-item-title{font-weight:700;font-size:13px}.notif-item-body{font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-item-ago{font-size:11px;color:var(--muted);margin-top:3px}.notif-panel-foot{display:block;text-align:center;padding:11px;font-size:12px;font-weight:700;color:var(--brand);border-top:1px solid var(--line)}.nav-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font-size:10px;font-weight:800;margin-left:auto}.convo-row{display:flex;align-items:center;gap:10px;padding:10px 6px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.convo-row:hover{background:var(--brand-light);border-radius:8px}.convo-avatar{width:36px;height:36px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:700;flex:none}.chat-card{display:flex;flex-direction:column;height:calc(100vh - 230px);min-height:420px;padding:0;overflow:hidden}.chat-stream{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}.chat-msg{display:flex;max-width:78%;gap:8px;align-items:flex-end}.chat-msg-avatar{margin-bottom:2px}.chat-msg-main{display:flex;flex-direction:column;min-width:0}.chat-msg.mine .chat-msg-main{align-items:flex-end}.chat-day{text-align:center;margin:12px 0 6px}.chat-day span{background:var(--line);color:var(--muted);font-size:11px;font-weight:700;padding:2px 12px;border-radius:999px}.chat-seen{font-size:11px;color:var(--muted);text-align:right;padding:2px 2px 0}.chat-typing{font-size:12px;color:var(--muted);font-style:italic;padding:2px 14px;min-height:18px}.msg-react-btn{opacity:0;background:#fff;border:1px solid var(--line);border-radius:999px;width:22px;height:22px;cursor:pointer;font-size:12px;line-height:1;padding:0;margin-top:3px;transition:opacity .12s}.chat-msg:hover .msg-react-btn{opacity:1}.msg-react-pick{display:none;gap:2px;margin-top:4px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px 6px;box-shadow:0 4px 14px #0000001f;width:-moz-max-content;width:max-content}.msg-react-pick.open{display:inline-flex}.msg-react-pick button{background:none;border:0;cursor:pointer;font-size:16px;padding:2px;border-radius:6px}.msg-react-pick button:hover{background:var(--brand-light)}.msg-reactions{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}.msg-reactions .react-chip{padding:1px 7px;font-size:12px}.timeline{display:flex;flex-direction:column;gap:14px}.timeline-item{display:flex;gap:10px;align-items:flex-start}.chat-msg.mine{align-self:flex-end;justify-content:flex-end}.chat-bubble{background:#f1f5f9;border:1px solid var(--line);border-radius:14px;padding:8px 12px}.chat-msg.mine .chat-bubble{background:var(--brand);color:#fff;border-color:var(--brand)}.chat-author{font-size:11px;font-weight:700;color:var(--brand);margin-bottom:2px}.chat-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.chat-time{font-size:10px;opacity:.7;margin-top:4px;text-align:right}.chat-img{max-width:200px;max-height:200px;border-radius:10px;margin-top:6px;display:block}.chat-file{display:inline-block;margin-top:6px;color:inherit;text-decoration:underline}.chat-compose{display:flex;align-items:flex-end;gap:8px;padding:10px 14px;border-top:1px solid var(--line);flex:none}.chat-compose textarea{resize:none;max-height:120px;border-radius:14px;padding:9px 12px}.chat-msg.grouped{margin-top:-4px}.content:has(.msg-app){padding:0}.msg-app{display:flex;height:calc(100vh - 64px);background:#fff}.msg-app>*{min-height:0}.msg-pane-list{width:320px;flex:none;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.msg-pane-thread{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.msg-list-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);flex:none}.msg-list-new{padding:10px 12px 0;flex:none}.msg-list-new select{width:100%;color:var(--brand);font-weight:600}.msg-list-search{padding:10px 12px;flex:none}.msg-list-search input{width:100%}.msg-list-body{flex:1;overflow-y:auto;min-height:0}.msg-convo{display:flex;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;transition:background .12s}.msg-convo:hover{background:#f8fafc}.msg-convo.active{background:var(--brand-light)}.msg-convo-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.msg-convo-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-convo-time{font-size:11px;color:var(--muted);white-space:nowrap;flex:none}.msg-convo-preview{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-thread-head{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);flex:none}.msg-thread-title{font-weight:700}.msg-thread-banner{padding:8px 16px;background:var(--brand-light);font-size:13px;flex:none}.msg-back{display:none}.msg-empty{flex:1;display:grid;place-items:center;padding:20px}.chat-empty{margin:auto;text-align:center;color:var(--muted);padding:24px}.chat-empty-ico{font-size:40px}.chat-canned{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}.canned-chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 16px;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink)}.canned-chip:hover{background:var(--brand-light);border-color:var(--brand);color:var(--brand)}@media(max-width:860px){.msg-app{height:calc(100vh - 64px)}.msg-pane-list{width:100%}.msg-app.is-thread .msg-pane-list{display:none}.msg-app:not(.is-thread) .msg-pane-thread{display:none}.msg-back{display:inline-grid}}.task-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}.task-check{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);background:#fff;cursor:pointer;color:#fff;font-size:12px;line-height:1;flex:none;padding:0}.task-check.done{background:var(--brand);border-color:var(--brand)}.task-done-text{text-decoration:line-through;color:var(--muted)}.subtasks{margin-left:28px}.add-subtask{display:flex;gap:6px;margin:6px 0 14px}.add-subtask input[type=text]{flex:1;padding:4px 8px;font-size:13px}.task-edit{position:relative}.task-edit>summary{list-style:none;cursor:pointer}.task-edit>summary::-webkit-details-marker{display:none}.task-edit-pop{position:absolute;right:0;top:calc(100% + 4px);z-index:30;width:240px;padding:12px;box-shadow:0 8px 28px #00000029}.progress-track{height:8px;background:var(--line);border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:var(--brand);transition:width .25s}.avatar{position:relative;border-radius:50%;color:#fff;display:inline-grid;place-items:center;font-weight:700;flex:none;line-height:1;vertical-align:middle}.avatar-dot{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;background:#9ca3af;border:2px solid #fff}.avatar-dot.on{background:#10b981}.react-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 9px;cursor:pointer;font-size:13px;line-height:1.4;transition:background .12s,border-color .12s}.react-chip:hover{background:var(--brand-light)}.react-chip.mine{background:var(--brand-light);border-color:var(--brand)}.react-count{font-size:12px;font-weight:700;color:var(--muted);min-width:4px}.react-chip.mine .react-count{color:var(--brand)}.xfeed{max-width:600px;margin:0 auto}.xcompose{display:flex;gap:12px;padding:4px 0 16px;border-bottom:1px solid var(--line)}.xcompose-input{width:100%;border:0;outline:0;resize:none;font-size:16px;line-height:1.5;background:transparent;padding:8px 0}.xcompose-bar{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:8px}.xpost-btn{border-radius:999px;padding:8px 20px}.xicon-btn{background:none;border:0;cursor:pointer;color:var(--muted);border-radius:50%;width:32px;height:32px;display:inline-grid;place-items:center;font-size:14px;transition:background .12s,color .12s}.xicon-btn:hover{background:var(--brand-light);color:var(--brand)}.xpost{display:flex;gap:12px;padding:16px 4px;border-bottom:1px solid var(--line);transition:background .12s}.xpost:hover{background:#fafbfc}.xpost-main{flex:1;min-width:0}.xpost-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.xpost-meta{color:var(--muted);font-weight:500}.xpost-del:hover{background:var(--red-light);color:var(--red)}.xpost-body{margin-top:2px;line-height:1.55;overflow-wrap:anywhere}.xpost-media{margin-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.xpost-img img{width:100%;max-height:360px;-o-object-fit:cover;object-fit:cover;border-radius:16px;border:1px solid var(--line);display:block}.xpost-file{grid-column:1 / -1;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;color:var(--ink);width:-moz-max-content;width:max-content}.xpost-reactions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.xpost-reactions:empty{margin:0}.xpost-actions{display:flex;gap:18px;align-items:center;margin-top:8px}.xact{background:none;border:0;cursor:pointer;color:var(--muted);font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:6px;padding:4px 6px;border-radius:8px;transition:color .12s,background .12s}.xact:hover{color:var(--brand);background:var(--brand-light)}.xreact{position:relative}.react-pop{display:none;position:absolute;bottom:calc(100% + 6px);left:0;gap:2px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 8px;box-shadow:var(--shadow-lg);z-index:20}.react-pop.open{display:inline-flex}.react-pop button{background:none;border:0;cursor:pointer;font-size:20px;padding:2px 4px;border-radius:8px;transition:transform .1s}.react-pop button:hover{background:var(--brand-light);transform:scale(1.15)}.xcomments{margin-top:12px;border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:10px}.xcomment{display:flex;gap:8px;align-items:flex-start}.xcomment-body{flex:1;min-width:0;background:#f6f8fa;border-radius:12px;padding:8px 12px}.xcomment-add{display:flex;gap:8px;align-items:center}.xcomment-add input{flex:1}.xpost-media:has(>*:only-child){grid-template-columns:1fr}.seg-toggle{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}.seg-toggle .seg{border:0;background:#fff;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;color:var(--muted)}.seg-toggle .seg.active{background:var(--brand);color:#fff}.kanban{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px;align-items:flex-start}.kanban-col{background:#f8fafc;border:1px solid var(--line);border-radius:12px;min-width:280px;width:280px;flex:none;display:flex;flex-direction:column}.kanban-col.over{border-color:var(--brand);background:var(--brand-light)}.kanban-col-head{padding:10px 12px;font-weight:700;font-size:13px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.kanban-count{color:var(--muted);font-weight:700;background:#fff;border-radius:999px;padding:0 8px;font-size:12px}.kanban-col-body{padding:10px;display:flex;flex-direction:column;gap:8px;min-height:48px}.kanban-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;cursor:grab;box-shadow:0 1px 2px #0000000a}.kanban-card:active{cursor:grabbing}.kanban-card.dragging{opacity:.5}.kanban-card-title{font-weight:600;font-size:14px;margin-bottom:6px;overflow-wrap:anywhere}.kanban-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.kanban-card a{color:inherit;text-decoration:none}.kanban-card{cursor:pointer}.kanban-card:hover{box-shadow:var(--shadow-md);border-color:#d1d5db}.kanban-col-head{border-top:3px solid var(--muted);border-radius:12px 12px 0 0}.kanban-col.is-todo .kanban-col-head{border-top-color:#94a3b8}.kanban-col.is-in_progress .kanban-col-head{border-top-color:var(--yellow)}.kanban-col.is-done .kanban-col-head{border-top-color:var(--green)}.kanban-add{background:none;border:0;color:var(--muted);font-weight:600;font-size:13px;text-align:left;padding:8px 12px;cursor:pointer;border-radius:0 0 12px 12px}.kanban-add:hover{background:var(--brand-light);color:var(--brand)}.due-chip{display:inline-flex;align-items:center;gap:3px}.due-chip.overdue{color:var(--red);font-weight:700}.proj-head{display:flex;align-items:center;gap:16px}.proj-ring{position:relative;flex:none;width:48px;height:48px}.proj-ring-pct{position:absolute;inset:0;display:grid;place-items:center;font-size:11px;font-weight:800}.avatar-stack{display:flex;align-items:center}.avatar-stack .avatar{border:2px solid #fff;margin-left:-8px}.avatar-stack .avatar:first-child{margin-left:0}.avatar-stack-more{margin-left:-8px;width:28px;height:28px;border-radius:50%;background:#e5e7eb;border:2px solid #fff;display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--muted)}.slideover-overlay{display:none;position:fixed;inset:0;background:#0f111766;z-index:90}.slideover-overlay.open{display:block}.slideover{position:fixed;top:0;right:0;height:100vh;width:min(460px,100vw);background:#fff;box-shadow:var(--shadow-lg);z-index:95;transform:translate(100%);transition:transform .22s cubic-bezier(.4,0,.2,1);overflow-y:auto;padding:20px}.slideover.open{transform:translate(0)}.tp-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}.tp-title{flex:1;border:0;border-bottom:1px solid transparent;font-size:18px;font-weight:700;padding:4px 0}.tp-title:hover,.tp-title:focus{border-bottom-color:var(--line);outline:0}.tp-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tp-field{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--muted)}.tp-field select,.tp-field input,.tp-field textarea{font-weight:400;color:var(--ink)}.tp-section{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}.tp-section h4{margin:0 0 10px;font-size:14px}.tp-subtasks{display:flex;flex-direction:column;gap:6px}.tp-subtask{display:flex;align-items:center;gap:8px}.tp-add-sub{display:flex;gap:6px;margin-top:10px}.tp-add-sub input{flex:1}.task-table{width:100%;border-collapse:collapse}.task-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;padding:12px 16px;border-bottom:1px solid var(--line)}.task-table td{padding:12px 16px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:middle}.task-table tbody tr{cursor:pointer;transition:background .12s}.task-table tbody tr:hover{background:#f8fafc}.task-table tbody tr:last-child td{border-bottom:0}.status-pill{display:inline-flex;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700}.kanban-addcol{background:transparent;border:1px dashed var(--line);min-width:220px;width:220px;padding:12px}.kanban-addcol-btn{background:none;border:0;color:var(--muted);font-weight:600;cursor:pointer;width:100%;text-align:left;padding:6px}.kanban-addcol-btn:hover{color:var(--brand)}.addstatus-form{display:none;margin-top:8px}.addstatus-form.open{display:block}.addstatus-form input[type=text]{width:100%}.task-modal-overlay{display:none;position:fixed;inset:0;background:#0f111773;z-index:95}.task-modal-overlay.open{display:block}.task-modal{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-48%);width:min(540px,calc(100vw - 32px));background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:96;padding:22px}.task-modal.open{display:block}.task-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.tc-title{width:100%;border:0;border-bottom:2px solid var(--line);font-size:20px;font-weight:700;padding:6px 0}.tc-title:focus{border-bottom-color:var(--brand);outline:0}.tc-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:14px}.task-modal-foot{display:flex;gap:10px;margin-top:18px}@media(max-width:620px){.tc-grid{grid-template-columns:1fr}}.btn{border:1px solid var(--line);background:#fff;padding:8px 16px;border-radius:8px;cursor:pointer;font-weight:600;font-size:13px;text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:var(--transition);white-space:nowrap;color:var(--ink)}.btn:hover{background:#f9fafb;border-color:#d1d5db;box-shadow:var(--shadow)}.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn.primary:hover{background:var(--brand-hover)}.btn.green{background:var(--green);color:#fff;border-color:var(--green)}.btn.green:hover{background:#059669}.btn.red{background:var(--red);color:#fff;border-color:var(--red)}.btn.red:hover{background:#dc2626}.btn.dark{background:var(--dark);color:#fff}.actions{display:flex;gap:8px;flex-wrap:wrap}h2{margin:0;font-size:16px;font-weight:700;letter-spacing:-.01em}h3{margin:0;font-size:15px;font-weight:700}.sub{color:var(--muted);font-size:13px;margin:4px 0 0;line-height:1.5}.small{font-size:12px;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;transition:var(--transition)}.card:hover{box-shadow:var(--shadow-md)}.grid{display:grid;gap:16px}.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.two{grid-template-columns:1fr 1fr}.three{grid-template-columns:repeat(3,1fr)}.kpi{position:relative;overflow:hidden;padding-left:1rem}.kpi:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--brand);border-radius:0 3px 3px 0}.kpi:nth-child(2):before{background:var(--green)}.kpi:nth-child(3):before{background:var(--yellow)}.kpi:nth-child(4):before{background:#8b5cf6}.kpi:nth-child(5):before{background:#ec4899}.kpi:nth-child(6):before{background:#f97316}.kpi:nth-child(7):before{background:#06b6d4}.kpi:nth-child(8):before{background:#84cc16}.kpi .label{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.kpi .value{font-size:24px;font-weight:800;margin-top:6px;letter-spacing:-.03em}.kpi .sub{font-size:12px}.badge{display:inline-flex;padding:3px 10px;border-radius:6px;font-size:11px;font-weight:700;background:var(--brand-light);color:var(--brand);letter-spacing:.02em}.badge.green{background:var(--green-light);color:#065f46}.badge.red{background:var(--red-light);color:#991b1b}.badge.yellow{background:var(--yellow-light);color:#92400e}.badge.gray{background:#f3f4f6;color:#374151}table{width:100%;border-collapse:collapse;border-spacing:0}th,td{padding:12px 16px;text-align:left;font-size:13px;vertical-align:middle}th{background:linear-gradient(135deg,#6c7ae0,#555abf);color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:none;padding:16px}th:first-child{border-radius:8px 0 0}th:last-child{border-radius:0 8px 0 0}td{border-bottom:1px solid #f0f0f0;color:var(--ink)}tbody tr{transition:background .15s ease}tbody tr:nth-child(2n){background:#f8f6ff}tbody tr:hover td{background:#6c7ae014}tfoot td{font-weight:700;background:linear-gradient(135deg,#6c7ae0,#555abf);color:#fff;border:none;padding:14px 16px}tfoot td:first-child{border-radius:0 0 0 8px}tfoot td:last-child{border-radius:0 0 8px}.sticky-thead th{position:sticky;top:0;z-index:2;background:linear-gradient(135deg,#6c7ae0,#555abf)}.sticky-table thead th{position:sticky;top:0;z-index:3;background:linear-gradient(135deg,#6c7ae0,#555abf)}.sticky-table tbody td:first-child,.sticky-table thead th:first-child{position:sticky;left:0;z-index:4}.sticky-table thead th:first-child{z-index:5}.sticky-table tbody td:first-child{background:#fff}.sticky-table tbody tr:nth-child(2n) td:first-child{background:#f8f6ff}.sticky-table tfoot td:first-child{position:sticky;left:0;z-index:4}.dataTables_wrapper{font-size:13px}.dataTables_wrapper .dt-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 0;margin-bottom:4px}.dataTables_wrapper .dataTables_length{margin:0;display:flex;align-items:center;gap:8px;white-space:nowrap}.dataTables_wrapper .dataTables_length label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);font-weight:600;margin:0;text-transform:none;letter-spacing:0}.dataTables_wrapper .dataTables_length select{width:auto;min-width:64px;padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px;font-weight:600;color:var(--ink);-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;cursor:pointer}.dataTables_wrapper .dataTables_filter{margin:0 0 0 auto}.dataTables_wrapper .dataTables_filter label{display:flex;align-items:center;gap:0;margin:0}.dataTables_wrapper .dataTables_filter input{padding:8px 16px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px;min-width:240px;transition:var(--transition);color:var(--ink)}.dataTables_wrapper .dataTables_filter input:focus{border-color:#6c7ae0;box-shadow:0 0 0 3px #6c7ae01f;outline:none}.dataTables_wrapper .dt-freeze-control{display:flex;align-items:center;gap:8px;margin-left:8px}.dataTables_wrapper .dt-freeze-control label{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}.dataTables_wrapper .dt-freeze-select{width:auto;min-width:140px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:12px;font-weight:600;color:var(--ink)}.dataTables_wrapper .dt-buttons{display:flex;gap:6px}.dataTables_wrapper .dt-buttons .dt-button{padding:7px 16px!important;border:1px solid var(--line)!important;border-radius:8px!important;background:#fff!important;color:var(--ink)!important;font-size:12px!important;font-weight:600!important;cursor:pointer;transition:var(--transition)}.dataTables_wrapper .dt-buttons .dt-button:hover{background:#f0eeff!important;border-color:#6c7ae0!important;color:#555abf!important}.dataTables_wrapper .dt-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 0;gap:12px}.dataTables_wrapper .dataTables_info{font-size:12px;color:var(--muted);padding:0;margin:0;font-weight:500}.dataTables_wrapper .dataTables_paginate{padding:0;margin:0}.dataTables_wrapper .dataTables_paginate .paginate_button{padding:6px 14px!important;margin:0 2px;border-radius:8px!important;border:1px solid var(--line)!important;background:#fff!important;color:var(--ink)!important;font-size:12px;font-weight:600;cursor:pointer;transition:var(--transition);display:inline-block}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{background:#f0eeff!important;border-color:#6c7ae0!important;color:#555abf!important;box-shadow:none!important}.dataTables_wrapper .dataTables_paginate .paginate_button.current{background:linear-gradient(135deg,#6c7ae0,#555abf)!important;border-color:#555abf!important;color:#fff!important;box-shadow:0 2px 8px #6c7ae04d!important}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled{opacity:.35;cursor:default;box-shadow:none!important}table.dataTable thead th{cursor:pointer;position:relative}table.dataTable thead th.sorting:after,table.dataTable thead th.sorting_asc:after,table.dataTable thead th.sorting_desc:after{font-size:10px;margin-left:6px}table.dataTable thead th.sorting:after{content:"⇅";opacity:.4}table.dataTable thead th.sorting_asc:after{content:"▲";opacity:1}table.dataTable thead th.sorting_desc:after{content:"▼";opacity:1}table.dataTable{border-collapse:separate!important;border-spacing:0}table.dataTable tbody tr:hover{background:#6c7ae00f!important}table.dataTable.no-footer{border-bottom:none}table.dataTable thead th,table.dataTable thead td{border-bottom:none!important}table.dataTable.no-footer{border-bottom:1px solid #f0f0f0!important}.dataTables_wrapper .dataTables_scrollHead table.dataTable,.dataTables_wrapper .dataTables_scrollBody table.dataTable,.dataTables_wrapper .dataTables_scrollFoot table.dataTable{margin:0!important}.dataTables_wrapper .dataTables_scrollHeadInner,.dataTables_wrapper .dataTables_scrollFootInner{width:100%!important}.dataTables_wrapper .dataTables_scrollHeadInner table.dataTable,.dataTables_wrapper .dataTables_scrollFootInner table.dataTable,.dataTables_wrapper .dataTables_scrollBody table.dataTable{min-width:100%!important}.dataTables_wrapper table.sticky-table thead th:first-child:not(.dtfc-fixed-left):not(.dtfc-fixed-start),.dataTables_wrapper table.sticky-table tbody td:first-child:not(.dtfc-fixed-left):not(.dtfc-fixed-start),.dataTables_wrapper table.sticky-table tfoot td:first-child:not(.dtfc-fixed-left):not(.dtfc-fixed-start){position:static!important;left:auto!important;z-index:auto!important}.dataTables_wrapper table.sticky-table tbody td:first-child:not(.dtfc-fixed-left):not(.dtfc-fixed-start),.dataTables_wrapper table.sticky-table tbody tr:nth-child(2n) td:first-child:not(.dtfc-fixed-left):not(.dtfc-fixed-start){background:inherit!important}table.dataTable thead th.dtfc-fixed-left,table.dataTable thead th.dtfc-fixed-start,table.dataTable tbody td.dtfc-fixed-left,table.dataTable tbody td.dtfc-fixed-start,table.dataTable tfoot td.dtfc-fixed-left,table.dataTable tfoot td.dtfc-fixed-start,table.dataTable tfoot th.dtfc-fixed-left,table.dataTable tfoot th.dtfc-fixed-start{text-align:left;background-clip:padding-box}table.dataTable thead th.dtfc-fixed-left,table.dataTable thead th.dtfc-fixed-start{z-index:7!important;background:linear-gradient(135deg,#6c7ae0,#555abf)!important;color:#fff}table.dataTable tbody td.dtfc-fixed-left,table.dataTable tbody td.dtfc-fixed-start{z-index:2!important;background:#fff!important}table.dataTable tbody tr:nth-child(2n) td.dtfc-fixed-left,table.dataTable tbody tr:nth-child(2n) td.dtfc-fixed-start{background:#f8f6ff!important}table.dataTable tfoot td.dtfc-fixed-left,table.dataTable tfoot td.dtfc-fixed-start,table.dataTable tfoot th.dtfc-fixed-left,table.dataTable tfoot th.dtfc-fixed-start{z-index:3!important;background:linear-gradient(135deg,#6c7ae0,#555abf)!important;color:#fff}.dataTables_wrapper .dataTables_scrollHead{position:relative;z-index:3}.dataTables_wrapper .dataTables_scrollHead table.dataTable thead th{z-index:4}.dataTables_wrapper .dataTables_scrollHead table.dataTable thead th.dtfc-fixed-left,.dataTables_wrapper .dataTables_scrollHead table.dataTable thead th.dtfc-fixed-start{z-index:8!important}table.fixedHeader-floating thead th{z-index:9}table.fixedHeader-floating thead th.dtfc-fixed-left,table.fixedHeader-floating thead th.dtfc-fixed-start{z-index:10!important}.select2-container--default .select2-selection--single{height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;display:flex;align-items:center;padding:0 12px;transition:var(--transition)}.select2-container--default .select2-selection--single:hover{border-color:#d1d5db}.select2-container--default.select2-container--open .select2-selection--single{border-color:var(--brand);box-shadow:0 0 0 3px #6366f11a}.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:36px;padding-left:0;color:var(--ink);font-size:13px}.select2-container--default .select2-selection--single .select2-selection__arrow{height:36px;right:8px}.select2-dropdown{border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-lg);overflow:hidden;margin-top:4px}.select2-results__option{padding:8px 14px;font-size:13px;transition:background .1s}.select2-results__option--highlighted{background:var(--brand-light)!important;color:var(--brand)!important}.select2-results__option--selected{background:var(--brand)!important;color:#fff!important}.select2-search--dropdown .select2-search__field{border:1px solid var(--line);border-radius:6px;padding:8px 12px;font-size:13px}.select2-container{width:100%!important}.sum-strip{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:10px;margin-bottom:16px;padding:6px 0}.sum-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;box-shadow:var(--shadow)}.sum-card .label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.sum-card .value{font-size:16px;font-weight:800;margin-top:4px;letter-spacing:-.02em}.sticky-strip{position:sticky;top:64px;z-index:4;background:var(--bg);padding:8px 0}input,select,textarea{border:1px solid var(--line);border-radius:8px;padding:9px 12px;background:#fff;width:100%;outline:none;font-size:13px;transition:var(--transition);color:var(--ink)}textarea{min-height:100px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #6366f11a}input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand)}.form{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.form label{font-size:12px;color:var(--muted);font-weight:700;display:grid;gap:6px;text-transform:uppercase;letter-spacing:.03em}.full{grid-column:1 / -1}.section{margin:24px 0 14px;display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;align-items:flex-end}.toolbar>*:not(form){max-width:230px}.toolbar form{display:contents}.toolbar.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow);align-items:center}.scroll{overflow:auto;max-height:70vh;position:relative}.empty{padding:32px;border:2px dashed var(--line);border-radius:var(--radius);color:var(--muted);background:#fafbfc;text-align:center;font-size:14px}.filter-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;margin-bottom:16px;box-shadow:var(--shadow);display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.filter-panel label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;display:flex;flex-direction:column;gap:4px;min-width:150px}.filter-panel .btn{align-self:flex-end}.alert-banner{background:var(--red-light);border:1px solid #fecaca;border-radius:10px;padding:12px 18px;margin:10px 0;display:flex;align-items:center;gap:10px;color:#991b1b;font-weight:600;font-size:13px}.alert-banner.warn{background:var(--yellow-light);border-color:#fde68a;color:#92400e}.alert-bell-wrapper{position:relative}.alert-bell-btn{position:relative;background:none;border:1px solid var(--line);border-radius:10px;padding:7px 10px;cursor:pointer;color:var(--ink);display:flex;align-items:center;transition:var(--transition)}.alert-bell-btn:hover,.alert-bell-wrapper.open .alert-bell-btn{background:var(--brand-light);border-color:var(--brand);color:var(--brand)}.alert-bell-badge{position:absolute;top:-5px;right:-5px;background:var(--red);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;line-height:18px;border-radius:9px;text-align:center;padding:0 4px}.alert-bell-badge.zero{background:var(--muted)}.alert-panel{position:absolute;top:calc(100% + 8px);right:0;width:400px;max-height:500px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:100;display:none;flex-direction:column;overflow:hidden}.alert-panel.open{display:flex}.alert-panel-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);font-size:14px}.alert-panel-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--muted);padding:0 4px;line-height:1}.alert-panel-close:hover{color:var(--ink)}.alert-panel-body{overflow-y:auto;max-height:380px;padding:8px}.alert-panel-footer{padding:8px;border-top:1px solid var(--line)}.alert-item{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:8px;margin-bottom:4px;font-size:12px;font-weight:600}.alert-item.dismissed{display:none}.alert-item.warn{background:var(--yellow-light);color:#92400e}.alert-item.info{background:#fefce8;color:#92400e}.alert-item.danger{background:var(--red-light);color:#b42318}.alert-item-content{flex:1;display:flex;flex-direction:column;gap:4px}.alert-item-content a{color:inherit;text-decoration:underline;font-size:11px}.alert-item-actions{display:flex;gap:8px;align-items:center;margin-top:2px}.alert-item-dismiss{background:none;border:none;font-size:16px;cursor:pointer;color:inherit;opacity:.5;padding:0 2px;line-height:1;flex-shrink:0}.alert-item-dismiss:hover{opacity:1}.alert-missing-list{max-height:200px;overflow-y:auto;padding:0 8px 8px;font-size:11px}.alert-missing-list table{width:100%}.alert-missing-list th,.alert-missing-list td{padding:3px 6px;text-align:left;font-size:11px}.alert-missing-list thead{position:sticky;top:0;background:var(--card)}.alert-inline-dismiss{background:none;border:none;font-size:18px;cursor:pointer;color:inherit;opacity:.4;padding:0 4px;line-height:1;margin-left:auto;flex-shrink:0}.alert-inline-dismiss:hover{opacity:1}.modal{position:fixed;inset:0;background:#0f111780;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:50;padding:20px}.modal.show{display:flex}.modal-card{background:#fff;border-radius:var(--radius-lg);width:min(1000px,96vw);max-height:90vh;overflow:auto;padding:24px;box-shadow:var(--shadow-lg);animation:modalIn .2s ease-out}@keyframes modalIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}.modal-head h3{font-size:17px}.modal-card.modal-wide{width:min(1400px,96vw);max-height:92vh}.modal-card.modal-wide .detail-header{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-card.modal-wide .detail-section{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.modal-card.modal-wide .detail-section h3{font-size:13px;font-weight:700;margin-bottom:10px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.modal-card.modal-wide .detail-table{width:100%;border-collapse:collapse;font-size:12px}.modal-card.modal-wide .detail-table th{background:var(--brand);color:#fff;padding:7px 8px;text-align:left;font-size:10px;text-transform:uppercase;font-weight:700}.modal-card.modal-wide .detail-table td{padding:5px 8px;border-bottom:1px solid var(--line)}.modal-card.modal-wide .detail-table input{padding:3px 8px}.modal-card.modal-wide .detail-table tr:hover td{background:var(--bg-light)}.modal-card.modal-wide .adj-add-card{background:var(--bg-light);border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:14px}.modal-card.modal-wide .adj-add-title{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.modal-card.modal-wide .adj-add-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px;align-items:end;margin:0}.modal-card.modal-wide .adj-add-form label{display:flex;flex-direction:column;gap:4px;margin:0;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.modal-card.modal-wide .adj-add-form input,.modal-card.modal-wide .adj-add-form select{width:100%}.modal-card.modal-wide .adj-add-form .adj-desc{grid-column:span 2}.modal-card.modal-wide .adj-add-form .adj-add-btn{grid-column:span 1;height:38px;white-space:nowrap}.modal-card.modal-wide .adj-table td.num,.modal-card.modal-wide .adj-table th.num{text-align:right;white-space:nowrap}.modal-card.modal-wide .adj-empty{padding:14px;text-align:center;color:var(--muted);font-size:13px;background:var(--bg-light);border:1px dashed var(--line);border-radius:10px}@media(max-width:760px){.modal-card.modal-wide .adj-add-form{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-card.modal-wide .adj-add-form .adj-desc,.modal-card.modal-wide .adj-add-form .adj-add-btn{grid-column:span 2}}.toast{position:fixed;top:24px;right:24px;background:var(--dark);color:#fff;padding:12px 20px;border-radius:10px;opacity:0;transform:translateY(-8px);transition:.25s cubic-bezier(.4,0,.2,1);z-index:60;font-weight:600;font-size:13px;box-shadow:var(--shadow-lg);max-width:380px}.toast.show{opacity:1;transform:translateY(0)}.report-title{font-size:20px;font-weight:800;margin:0}.report-section{margin:16px 0}.report-header{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;background:linear-gradient(180deg,#fff,#fafbfc);margin-bottom:16px}.report-logo{height:48px;-o-object-fit:contain;object-fit:contain}.report-output-scroll{overflow:visible;position:relative}.report-output-scroll .scroll{overflow:visible;max-height:none}.check-cell{text-align:center;vertical-align:middle}.check-cell input[type=checkbox]{width:18px;height:18px;margin:0 auto;display:block}.bulk-bar{position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--dark);color:#fff;padding:12px 24px;display:flex;align-items:center;gap:14px;transform:translateY(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);box-shadow:0 -4px 20px #00000026}.bulk-bar.show{transform:translateY(0)}.bulk-bar .bulk-count{font-weight:700;font-size:14px;margin-right:auto}.bulk-bar .btn{font-size:12px;padding:7px 16px}.bulk-bar .btn.red{background:var(--red);color:#fff;border-color:var(--red)}.bulk-bar .btn.red:hover{background:#dc2626}.dt-bulk-check{text-align:center;width:36px;min-width:36px;max-width:36px}.dt-bulk-check input[type=checkbox]{width:16px;height:16px;cursor:pointer}tr.selected td{background:#eef2ff!important}.change{font-size:12px;font-weight:700}.change.up{color:#065f46}.change.down{color:#991b1b}.change.flat{color:var(--muted)}.table-filter{margin-bottom:10px;max-width:360px}.table-tools-auto{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.table-tools-auto .small{font-size:12px;color:var(--muted)}.sort-indicator{font-size:10px;margin-left:4px;color:var(--brand)}.menu-toggle{display:none;background:#fff;border:1px solid var(--line);border-radius:8px;width:38px;height:38px;align-items:center;justify-content:center;font-size:18px;cursor:pointer;color:var(--ink);flex-shrink:0;padding:0}.menu-toggle:hover{background:#f9fafb}.sidebar-overlay{display:none;position:fixed;inset:0;background:#0f111780;z-index:95}.sidebar-overlay.show{display:block}.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.topbar-left h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:1024px){.app{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;height:100vh;height:100dvh;width:268px;max-width:84vw;transform:translate(-100%);transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:100;flex-direction:column;flex-wrap:nowrap}.sidebar.open{transform:translate(0);box-shadow:0 18px 50px #0006}.nav{flex-direction:column;overflow-y:auto;overflow-x:hidden;flex-wrap:nowrap}.menu-toggle{display:inline-flex}.topbar{position:sticky;top:0;z-index:10;flex-wrap:wrap;height:auto;padding:12px 16px;gap:10px}.content{padding:18px 16px 32px}.kpis,.two,.three,.form,.sum-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.report-header{flex-direction:column;align-items:flex-start}.sticky-strip{position:static;top:auto;z-index:auto}.dataTables_wrapper{overflow-x:auto}.dataTables_scrollBody{-webkit-overflow-scrolling:touch}.dt-freeze-control{display:none!important}.mobile-table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.mobile-table-scroll>table{min-width:-moz-max-content;min-width:max-content}}@media(max-width:680px){.content{padding:14px 12px 28px}.kpis,.two,.three,.form,.sum-strip{grid-template-columns:1fr}.topbar h2{font-size:16px}.topbar .sub{display:none}.actions{width:100%}.actions .btn{flex:1 1 auto;justify-content:center}.toolbar>*:not(form),.toolbar>*{max-width:100%}.filter-panel{gap:10px}.filter-panel label{min-width:100%}.section{align-items:flex-start}.content [style*=grid-template-columns],#modalBody [style*=grid-template-columns]{grid-template-columns:1fr!important}.modal{padding:0}.modal-card,.modal-card.modal-wide{width:100%!important;max-width:100%;min-height:100vh;min-height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0;margin:0;overflow-y:auto}}@media print{.sidebar,.topbar,.bulk-bar,.toast,.modal,.alert-bell-wrapper,.dt-toolbar,.dt-footer,.dataTables_scrollHead,.no-print{display:none!important}.app,.main{display:block}.content{padding:0}.scroll,.card.scroll,.report-output-scroll,.dataTables_scrollBody{overflow:visible!important;max-height:none!important;height:auto!important}table{page-break-inside:auto}tr{page-break-inside:avoid}thead{display:table-header-group}tfoot{display:table-footer-group}.card{box-shadow:none;border:1px solid #e5e7eb;-moz-column-break-inside:avoid;break-inside:avoid}.report-section{-moz-column-break-inside:avoid;break-inside:avoid}.kpis{display:flex!important;flex-wrap:wrap;gap:8px}.kpis .card{flex:1;min-width:100px}.sum-strip{display:flex!important;flex-wrap:wrap;gap:6px;position:static}.sum-card{flex:1;min-width:80px}.report-header{-moz-column-break-inside:avoid;break-inside:avoid}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
