:root,[data-theme=light]{--text-xs:clamp(.75rem, .7rem + .25vw, .875rem);--text-sm:clamp(.875rem, .8rem + .35vw, 1rem);--text-base:clamp(1rem, .9rem + .5vw, 1.125rem);--text-lg:clamp(1.125rem, .95rem + .85vw, 1.5rem);--text-xl:clamp(1.5rem, 1rem + 1.5vw, 2.25rem);--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--transition-interactive:.18s cubic-bezier(.16, 1, .3, 1);--shadow-sm:0 1px 2px oklch(20% .01 80/.06);--shadow-md:0 4px 12px oklch(20% .01 80/.08);--shadow-lg:0 12px 32px oklch(20% .01 80/.12);--color-bg:#f7f6f2;--color-surface:#f9f8f5;--color-surface-2:#fbfbf9;--color-surface-offset:#f3f0ec;--color-surface-offset-2:#edeae5;--color-surface-dynamic:#e6e4df;--color-divider:#dcd9d5;--color-border:#d4d1ca;--color-tx:#28251d;--color-tx-muted:#7a7974;--color-tx-faint:#bab9b4;--color-tx-inverse:#f9f8f4;--color-primary:#01696f;--color-primary-hover:#0c4e54;--color-primary-active:#0f3638;--color-primary-hl:#cedcd8;--color-error:#a12c7b;--color-error-hl:#e0ced7;--color-success:#437a22;--color-success-hl:#d4dfcc;--color-warning:#964219;--color-warning-hl:#ddcfc6;--color-blue:#006494;--color-blue-hl:#c6d8e4;--color-orange:#da7101;--color-orange-hl:#e7d7c4}[data-theme=dark]{--color-bg:#171614;--color-surface:#1c1b19;--color-surface-2:#201f1d;--color-surface-offset:#1d1c1a;--color-surface-offset-2:#22211f;--color-surface-dynamic:#2d2c2a;--color-divider:#262523;--color-border:#393836;--color-tx:#cdccca;--color-tx-muted:#797876;--color-tx-faint:#5a5957;--color-tx-inverse:#2b2a28;--color-primary:#4f98a3;--color-primary-hover:#227f8b;--color-primary-active:#1a626b;--color-primary-hl:#313b3b;--color-error:#c4528f;--color-error-hl:#3b2d35;--color-success:#6aad44;--color-success-hl:#2d3a27;--color-warning:#c46a30;--color-warning-hl:#3b3027;--color-blue:#3d9cc9;--color-blue-hl:#273540;--color-orange:#e89030;--color-orange-hl:#3b3027;--shadow-sm:0 1px 2px oklch(0% 0 0/.2);--shadow-md:0 4px 12px oklch(0% 0 0/.3);--shadow-lg:0 12px 32px oklch(0% 0 0/.4)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:Inter,system-ui,-apple-system,sans-serif;font-size:var(--text-base);color:var(--color-tx);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100dvh;line-height:1.5;overflow:hidden}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}img,svg{max-width:100%;display:block}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}@font-face{font-family:Inter;src:url(/fonts/inter-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}.dev-banner{z-index:99999;color:#000;text-align:center;letter-spacing:.5px;background:#f59e0b;padding:4px;font-size:12px;font-weight:600;position:fixed;top:0;left:0;right:0}.login-page{background:var(--color-bg);justify-content:center;align-items:center;min-height:100dvh;padding:1rem;display:flex}.login-container{text-align:center;width:100%;max-width:380px}.login-logo{width:56px;height:56px;margin:0 auto 1rem}.login-title{font-size:var(--text-lg);margin-bottom:.25rem;font-weight:700}.login-subtitle{font-size:var(--text-sm);color:var(--color-tx-muted);margin-bottom:1.5rem}.login-card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-xl);text-align:left;padding:1.5rem}.login-card .field-label{margin-bottom:.25rem}.login-card .input-field{margin-bottom:1rem}.login-error{color:var(--color-error);font-size:var(--text-xs);margin-bottom:.75rem}.app-shell{grid-template:"sidebar header"56px"sidebar main"1fr/240px 1fr;height:100dvh;display:grid;overflow:hidden}.app-shell.sidebar-collapsed{grid-template-columns:0 1fr}.app-shell.sidebar-collapsed .sidebar{display:none}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-divider);z-index:20;flex-direction:column;grid-area:sidebar;display:flex;overflow-y:auto}.sidebar-brand{border-bottom:1px solid var(--color-divider);flex-shrink:0;align-items:center;gap:.75rem;height:56px;padding:0 1rem;display:flex}.sidebar-brand svg{flex-shrink:0}.sidebar-brand-text{font-size:var(--text-sm);color:var(--color-tx);white-space:nowrap;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:.75rem .5rem;display:flex}.sidebar-nav-item{min-height:44px;font-size:var(--text-sm);color:var(--color-tx-muted);border-radius:var(--radius-md);transition:all var(--transition-interactive);cursor:pointer;align-items:center;gap:.75rem;padding:.5rem 1rem;font-weight:500;text-decoration:none;display:flex}.sidebar-nav-item:hover{color:var(--color-tx);background:var(--color-surface-offset);text-decoration:none}.sidebar-nav-item.active{color:var(--color-primary);background:var(--color-primary-hl);box-shadow:inset 3px 0 0 var(--color-primary);font-weight:600}.sidebar-nav-item svg{opacity:.7;flex-shrink:0}.sidebar-nav-item.active svg{opacity:1}.sidebar-footer{border-top:1px solid var(--color-divider);flex-shrink:0;padding:.75rem}.sidebar-user{border-radius:var(--radius-md);align-items:center;gap:.75rem;padding:.5rem;display:flex}.sidebar-avatar{border-radius:var(--radius-full);background:var(--color-primary-hl);width:32px;height:32px;font-size:var(--text-xs);color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:var(--text-xs);color:var(--color-tx);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.sidebar-logout{border-radius:var(--radius-md);width:32px;height:32px;color:var(--color-tx-faint);cursor:pointer;transition:all var(--transition-interactive);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.sidebar-logout:hover{background:var(--color-surface-offset);color:var(--color-error)}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-divider);z-index:15;grid-area:header;align-items:center;gap:.75rem;padding:0 1.5rem;display:flex}.header-search{background:var(--color-surface-offset);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;flex:1;align-items:center;gap:.5rem;max-width:400px;min-height:36px;padding:.375rem .75rem;transition:border-color .2s,box-shadow .2s;display:flex}.header-search:hover{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-hl)}.header-search svg{color:var(--color-tx-faint);flex-shrink:0}.header-search-text{font-size:var(--text-xs);color:var(--color-tx-faint);flex:1}.header-search-kbd{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-tx-faint);white-space:nowrap;padding:.125rem .375rem;font-size:.625rem;font-weight:600}.header-spacer{flex:1}.header-btn{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-tx-muted);transition:all var(--transition-interactive);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:relative}.header-btn:hover{background:var(--color-surface-offset);color:var(--color-tx)}.mobile-menu-btn{display:none}.main-content{background:var(--color-bg);grid-area:main;padding:1.5rem;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.view-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.view-title{font-size:var(--text-lg);color:var(--color-tx);font-weight:700}.view-subtitle{font-size:var(--text-xs);color:var(--color-tx-muted);margin-top:.125rem}.btn{min-height:44px;font-size:var(--text-sm);border-radius:var(--radius-md);transition:all var(--transition-interactive);white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.375rem;padding:.5rem 1rem;font-weight:500;text-decoration:none;display:inline-flex}.btn svg{flex-shrink:0}.btn-primary{background:var(--color-primary);color:var(--color-tx-inverse)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary:active{background:var(--color-primary-active)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--color-surface-offset);color:var(--color-tx);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-surface-dynamic)}.btn-ghost{color:var(--color-tx-muted);background:0 0}.btn-ghost:hover{background:var(--color-surface-offset);color:var(--color-tx)}.btn-danger{background:var(--color-error);color:var(--color-tx-inverse)}.btn-danger:hover{opacity:.9}.btn-sm{min-height:32px;font-size:var(--text-xs);padding:.25rem .625rem}.field-label{font-size:var(--text-xs);color:var(--color-tx-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.375rem;font-weight:500;display:block}.input-field{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;font-size:var(--text-sm);color:var(--color-tx);min-height:44px;transition:border-color var(--transition-interactive), box-shadow var(--transition-interactive);padding:.5rem .75rem}.input-field:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-hl);outline:none}.input-field::placeholder{color:var(--color-tx-faint)}.select-field{appearance:none;background:var(--color-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%237a7974' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E") no-repeat right .75rem center;border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;font-size:var(--text-sm);color:var(--color-tx);cursor:pointer;min-height:44px;transition:border-color var(--transition-interactive), box-shadow var(--transition-interactive);padding:.5rem 2rem .5rem .75rem}.select-field:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-hl);outline:none}textarea.input-field{resize:vertical;min-height:80px}.form-row{margin-bottom:1rem}.form-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.table-wrap{border:1px solid var(--color-divider);border-radius:var(--radius-lg);background:var(--color-surface);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.data-table thead{z-index:1;position:sticky;top:0}.data-table thead th{background:var(--color-surface-offset);font-size:var(--text-xs);color:var(--color-tx-muted);text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:1px solid var(--color-divider);white-space:nowrap;padding:.625rem .75rem;font-weight:600}.data-table tbody tr{transition:background var(--transition-interactive)}.data-table tbody tr:hover{background:var(--color-surface-offset)}.data-table tbody td{border-bottom:1px solid var(--color-divider);vertical-align:middle;padding:.625rem .75rem}.data-table tbody tr:last-child td{border-bottom:none}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.kpi-card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);transition:box-shadow var(--transition-interactive);padding:1.25rem}.kpi-card:hover{box-shadow:var(--shadow-md)}.kpi-label{font-size:var(--text-xs);color:var(--color-tx-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem;font-weight:500}.kpi-value{font-size:var(--text-xl);font-variant-numeric:tabular-nums;color:var(--color-tx);font-weight:700}.kpi-delta{font-size:var(--text-xs);color:var(--color-tx-muted);margin-top:.375rem}.kpi-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:.75rem;display:flex}.kpi-icon.teal{background:var(--color-primary-hl);color:var(--color-primary)}.kpi-icon.green{background:var(--color-success-hl);color:var(--color-success)}.kpi-icon.orange{background:var(--color-warning-hl);color:var(--color-warning)}.kpi-icon.blue{background:var(--color-blue-hl);color:var(--color-blue)}.kpi-icon.red{background:var(--color-error-hl);color:var(--color-error)}.badge{font-size:var(--text-xs);border-radius:var(--radius-full);white-space:nowrap;align-items:center;padding:.125rem .5rem;font-weight:500;display:inline-flex}.badge-success,.badge-active,.badge-compliant{background:var(--color-success-hl);color:var(--color-success)}.badge-warning,.badge-due-soon{background:var(--color-warning-hl);color:var(--color-warning)}.badge-error,.badge-overdue,.badge-expired{background:var(--color-error-hl);color:var(--color-error)}.badge-blue,.badge-in-progress{background:var(--color-blue-hl);color:var(--color-blue)}.badge-muted,.badge-pending{background:var(--color-surface-dynamic);color:var(--color-tx-muted)}.badge-primary{background:var(--color-primary-hl);color:var(--color-primary)}.tab-list{border-bottom:1px solid var(--color-divider);gap:0;margin-bottom:1.5rem;display:flex;overflow-x:auto}.tab-btn{font-size:var(--text-sm);color:var(--color-tx-muted);cursor:pointer;white-space:nowrap;min-height:44px;transition:all var(--transition-interactive);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.375rem;padding:.75rem 1rem;font-weight:500;display:inline-flex}.tab-btn:hover{color:var(--color-tx)}.tab-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);transition:box-shadow var(--transition-interactive);padding:1.25rem}.card:hover{box-shadow:var(--shadow-md)}.card-title{font-size:var(--text-sm);color:var(--color-tx);margin-bottom:.5rem;font-weight:600}.modal-overlay{z-index:50;background:oklch(0% 0 0/.4);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-overlay.active{opacity:1;pointer-events:auto}.modal-panel{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:560px;max-height:85vh;display:flex;overflow:hidden}.modal-wide .modal-panel{max-width:720px}.modal-header{border-bottom:1px solid var(--color-divider);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-title{font-size:var(--text-base);font-weight:600}.modal-close{border-radius:var(--radius-md);width:32px;height:32px;color:var(--color-tx-muted);cursor:pointer;transition:background var(--transition-interactive);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.modal-close:hover{background:var(--color-surface-offset)}.modal-body{flex:auto;padding:1.5rem;overflow-y:auto}.modal-footer{border-top:1px solid var(--color-divider);flex-shrink:0;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.filter-bar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.filter-bar .select-field,.filter-bar .input-field{flex:0 auto;width:auto;min-width:160px}.empty-state{text-align:center;color:var(--color-tx-faint);flex-direction:column;justify-content:center;align-items:center;padding:3rem;display:flex}.empty-state svg{opacity:.4;margin-bottom:1rem}.empty-state-title{font-size:var(--text-sm);color:var(--color-tx-muted);margin-bottom:.375rem;font-weight:500}.empty-state-text{font-size:var(--text-xs);margin-bottom:1rem}.skeleton{background:linear-gradient(90deg, var(--color-surface-offset) 25%, var(--color-surface-dynamic) 50%, var(--color-surface-offset) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s ease-in-out infinite skeletonShimmer}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.compliance-item{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);transition:box-shadow var(--transition-interactive);cursor:pointer;align-items:center;gap:1rem;padding:1rem;display:flex}.compliance-item:hover{box-shadow:var(--shadow-sm)}.compliance-dot{border-radius:var(--radius-full);flex-shrink:0;width:10px;height:10px}.compliance-dot.green{background:var(--color-success)}.compliance-dot.amber{background:var(--color-warning)}.compliance-dot.red{background:var(--color-error)}.compliance-dot.blue{background:var(--color-blue)}.compliance-dot.gray{background:var(--color-tx-faint)}.compliance-info{flex:1;min-width:0}.compliance-title{font-size:var(--text-sm);color:var(--color-tx);font-weight:500}.compliance-due{font-size:var(--text-xs);color:var(--color-tx-muted);margin-top:.125rem}.license-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;display:grid}.license-card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);transition:box-shadow var(--transition-interactive);padding:1.25rem;position:relative}.license-card:hover{box-shadow:var(--shadow-md)}.license-card-status{position:absolute;top:1.25rem;right:1.25rem}.license-card-type{font-size:var(--text-xs);color:var(--color-tx-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.375rem;font-weight:600}.license-card-number{font-size:var(--text-sm);color:var(--color-tx);margin-bottom:.75rem;font-weight:500}.license-card-detail{font-size:var(--text-xs);color:var(--color-tx-muted);justify-content:space-between;padding:.25rem 0;display:flex}.license-card-detail span:last-child{color:var(--color-tx);font-weight:500}.state-group{margin-bottom:1.5rem}.state-group-header{border-bottom:1px solid var(--color-divider);align-items:center;gap:.75rem;margin-bottom:.75rem;padding-bottom:.5rem;display:flex}.state-badge{font-size:var(--text-xs);border-radius:var(--radius-sm);background:var(--color-primary-hl);color:var(--color-primary);justify-content:center;align-items:center;padding:.25rem .625rem;font-weight:700;display:inline-flex}.state-group-title{font-size:var(--text-sm);color:var(--color-tx);font-weight:600}.activity-feed{flex-direction:column;gap:0;display:flex}.activity-item{border-bottom:1px solid var(--color-divider);gap:.75rem;padding:.75rem 0;display:flex}.activity-item:last-child{border-bottom:none}.activity-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px;margin-top:6px}.activity-text{font-size:var(--text-sm);color:var(--color-tx)}.activity-time{font-size:var(--text-xs);color:var(--color-tx-faint);margin-top:.125rem}.board-selector{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.board-selector .select-field{min-height:36px}.board-selector .btn-sm{min-height:32px}.board-selector-separator{background:var(--color-divider);width:1px;height:20px;margin:0 .25rem}.board-save-indicator{font-size:var(--text-xs);color:var(--color-tx-faint);align-items:center;gap:.375rem;margin-left:auto;display:flex}.board-save-dot{border-radius:var(--radius-full);background:var(--color-success);width:6px;height:6px}.board-view-toggle{border:1px solid var(--color-divider);border-radius:var(--radius-md);gap:0;width:fit-content;margin-bottom:.75rem;display:flex;overflow:hidden}.board-view-btn{font-size:var(--text-xs);color:var(--color-tx-muted);background:var(--color-surface);cursor:pointer;transition:all var(--transition-interactive);border:none;border-right:1px solid var(--color-divider);align-items:center;gap:.375rem;padding:.375rem .75rem;font-weight:500;display:flex}.board-view-btn:last-child{border-right:none}.board-view-btn:hover{background:var(--color-surface-offset);color:var(--color-tx)}.board-view-btn.active{background:var(--color-primary-hl);color:var(--color-primary);font-weight:600}.board-toolbar{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.board-search{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);align-items:center;gap:.5rem;padding:.375rem .75rem;display:flex}.board-search svg{color:var(--color-tx-faint);flex-shrink:0}.board-search-input{font-size:var(--text-xs);color:var(--color-tx);background:0 0;border:none;outline:none;min-width:160px}.board-search-input::placeholder{color:var(--color-tx-faint)}.board-item-count{font-size:var(--text-xs);color:var(--color-tx-faint)}.board-bulk-bar{background:var(--color-primary);color:var(--color-tx-inverse);border-radius:var(--radius-md);font-size:var(--text-xs);align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.5rem 1rem;display:flex}.board-bulk-bar.active{display:flex}.board-bulk-count{font-weight:600}.board-bulk-btn{color:inherit;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-xs);background:#ffffff26;border:none;align-items:center;gap:.25rem;padding:.25rem .625rem;display:flex}.board-bulk-btn:hover{background:#ffffff40}.board-bulk-btn.danger{background:var(--color-error)}.board-bulk-close{color:inherit;cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:1.25rem;line-height:1}.board-wrapper{margin-bottom:1rem;overflow:auto visible}.board-wrapper::-webkit-scrollbar{height:6px}.board-wrapper::-webkit-scrollbar-track{background:var(--color-surface-offset);border-radius:3px}.board-wrapper::-webkit-scrollbar-thumb{background:var(--color-tx-faint);border-radius:3px}.board-header-row{z-index:10;background:var(--color-surface-offset);border:1px solid var(--color-divider);border-radius:var(--radius-md) var(--radius-md) 0 0;display:grid;position:sticky;top:0}.board-col-header{font-size:var(--text-xs);color:var(--color-tx-muted);text-transform:uppercase;letter-spacing:.04em;border-right:1px solid var(--color-divider);white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;align-items:center;gap:.375rem;padding:.5rem .75rem;font-weight:600;display:flex;position:relative;overflow:hidden}.board-col-header:first-child{border-left:none}.board-col-header.sorted{color:var(--color-primary)}.board-sort-icon{opacity:.4;transition:opacity var(--transition-interactive)}.board-col-header.sorted .board-sort-icon{opacity:1}.board-add-col-btn{cursor:pointer;color:var(--color-tx-faint);font-size:var(--text-sm);border-radius:0 var(--radius-md) 0 0;transition:all var(--transition-interactive);justify-content:center;align-items:center;font-weight:600;display:flex}.board-add-col-btn:hover{color:var(--color-primary);background:var(--color-primary-hl)}.board-group{margin-bottom:0}.board-group-header{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--text-sm);transition:filter var(--transition-interactive);border-radius:var(--radius-sm);align-items:center;gap:.625rem;padding:.5rem .75rem;font-weight:600;display:flex;position:relative}.board-group-header:hover{filter:brightness(.95)}.board-group-toggle{transition:transform var(--transition-interactive);display:flex}.board-group-toggle.collapsed{transform:rotate(-90deg)}.board-group-name{outline:none;font-weight:600}.board-group-name[contenteditable=true]{background:#ffffff4d;border-radius:3px;padding:0 .375rem}.board-group-count{font-size:var(--text-xs);color:#00000080;font-weight:400}.board-group-menu{opacity:0;color:inherit;cursor:pointer;border-radius:var(--radius-sm);transition:opacity var(--transition-interactive);background:0 0;border:none;margin-left:auto;padding:.25rem}.board-group-header:hover .board-group-menu{opacity:.7}.board-group-menu:hover{background:#fff3;opacity:1!important}.board-group-body{transition:max-height .25s;overflow:hidden}.board-group-body.collapsed{overflow:hidden;max-height:0!important}.board-row{border-left:1px solid var(--color-divider);border-right:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);background:var(--color-surface);transition:background var(--transition-interactive);min-height:40px;display:grid}.board-row:nth-child(2n){background:var(--color-surface-2)}.board-row:hover{background:var(--color-surface-offset)}.board-row.selected{background:var(--color-primary-hl)}.board-cell{border-right:1px solid var(--color-divider);min-height:40px;font-size:var(--text-xs);align-items:center;padding:.25rem .5rem;display:flex;overflow:hidden}.board-cell:hover{box-shadow:inset 0 0 0 1px var(--color-border)}.board-cell-name{border-right:1px solid var(--color-divider);min-height:40px;font-size:var(--text-sm);background:inherit;z-index:2;align-items:center;padding:.25rem .75rem;font-weight:500;display:flex;position:sticky;left:40px}.board-cell-name-text{cursor:pointer}.board-cell-name-text:hover{color:var(--color-primary)}.board-cell-checkbox{border-right:1px solid var(--color-divider);background:inherit;z-index:2;justify-content:center;align-items:center;display:flex;position:sticky;left:0}.board-cell-edit{width:100%;font-size:inherit;color:var(--color-tx);background:0 0;border:none;outline:none;padding:.25rem}.board-cell-edit:focus{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:2px}.board-status-pill{border-radius:var(--radius-sm);width:100%;font-size:var(--text-xs);color:#fff;text-shadow:0 1px 1px #00000026;white-space:nowrap;text-overflow:ellipsis;text-align:center;cursor:pointer;transition:filter var(--transition-interactive);justify-content:center;align-items:center;padding:.25rem .5rem;font-weight:600;display:inline-flex;overflow:hidden}.board-status-pill:hover{filter:brightness(1.08)}.board-status-pill.light-bg{color:#333;text-shadow:none}.board-status-empty{border-radius:var(--radius-sm);background:var(--color-surface-offset);cursor:pointer;width:100%;height:28px;transition:background var(--transition-interactive)}.board-status-empty:hover{background:var(--color-surface-offset-2)}.board-person-avatar{border-radius:var(--radius-full);color:#fff;text-shadow:0 1px 1px #0003;cursor:pointer;width:30px;height:30px;transition:transform var(--transition-interactive);flex-shrink:0;justify-content:center;align-items:center;font-size:.6rem;font-weight:700;display:flex}.board-person-avatar:hover{transform:scale(1.1);box-shadow:0 2px 6px oklch(0% 0 0/.2)}.board-person-empty{border-radius:var(--radius-full);border:1.5px dashed var(--color-border);width:30px;height:30px;color:var(--color-tx-faint);cursor:pointer;transition:all var(--transition-interactive);justify-content:center;align-items:center;display:flex}.board-person-empty:hover{border-color:var(--color-primary);background:var(--color-primary-hl)}.board-date-display{border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-tx-muted);cursor:pointer;transition:background var(--transition-interactive);padding:.25rem .5rem}.board-date-display:hover{background:var(--color-surface-offset);color:var(--color-tx)}.board-date-input{border:1px solid var(--color-primary);background:var(--color-surface);border-radius:var(--radius-sm);width:100%;font-size:var(--text-xs);color:var(--color-tx);outline:none;padding:.25rem}.board-picker{z-index:100;background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);min-width:180px;box-shadow:var(--shadow-lg);flex-direction:column;max-height:300px;padding:.375rem;display:flex;position:fixed;overflow-y:auto}.board-picker-search{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;font-size:var(--text-xs);color:var(--color-tx);background:var(--color-surface);outline:none;margin-bottom:.375rem;padding:.375rem .5rem}.board-picker-option{font-size:var(--text-xs);color:var(--color-tx);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-interactive);text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;width:100%;padding:.5rem .625rem;display:flex}.board-picker-option:hover{background:var(--color-surface-offset)}.board-picker-option.active{background:var(--color-primary-hl);color:var(--color-primary)}.board-picker-dot{border-radius:var(--radius-sm);flex-shrink:0;width:14px;height:14px}.board-add-item{border-left:1px solid var(--color-divider);border-right:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);min-height:36px;transition:background var(--transition-interactive);display:grid}.board-add-item:hover{background:var(--color-surface-offset)}.board-add-item-input{font-size:var(--text-xs);color:var(--color-tx);background:0 0;border:none;outline:none;width:100%}.board-add-item-input::placeholder{color:var(--color-tx-faint)}.board-summary-row{border-left:1px solid var(--color-divider);border-right:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);background:var(--color-surface-offset);border-radius:0 0 var(--radius-md) var(--radius-md);min-height:32px;display:grid}.board-summary-cell{border-right:1px solid var(--color-divider);align-items:center;padding:.25rem .5rem;display:flex}.kanban-board{gap:1rem;min-height:400px;padding-bottom:1rem;display:flex;overflow-x:auto}.kanban-column{background:var(--color-surface-offset);border-radius:var(--radius-lg);flex-direction:column;flex-shrink:0;min-width:280px;max-width:320px;max-height:calc(100vh - 200px);display:flex}.kanban-column-header{font-size:var(--text-xs);color:var(--color-tx-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-divider);flex-shrink:0;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-weight:600;display:flex}.kanban-column-count{background:var(--color-surface-dynamic);border-radius:var(--radius-full);padding:.125rem .375rem;font-size:.625rem}.kanban-column-body{flex-direction:column;flex:1;gap:.5rem;padding:.5rem;display:flex;overflow-y:auto}.kanban-card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);cursor:grab;transition:box-shadow var(--transition-interactive);padding:.75rem}.kanban-card:hover{box-shadow:var(--shadow-md)}.kanban-card-title{font-size:var(--text-sm);color:var(--color-tx);margin-bottom:.375rem;font-weight:500}.kanban-card-meta{font-size:var(--text-xs);color:var(--color-tx-muted);justify-content:space-between;align-items:center;display:flex}.kanban-card-assignee{align-items:center;gap:.375rem;display:flex}.kanban-card-avatar{border-radius:var(--radius-full);background:var(--color-primary-hl);color:#fff;justify-content:center;align-items:center;width:20px;height:20px;font-size:.5rem;font-weight:600;display:flex}.detail-panel-overlay{z-index:40;background:oklch(0% 0 0/.3);justify-content:flex-end;display:flex;position:fixed;inset:0}.detail-panel{background:var(--color-surface);width:100%;max-width:560px;box-shadow:var(--shadow-lg);flex-direction:column;animation:.2s ease-out slideIn;display:flex}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.detail-panel-header{border-bottom:1px solid var(--color-divider);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.detail-panel-title{font-size:var(--text-base);outline:none;flex:1;font-weight:600}.detail-panel-tabs{border-bottom:1px solid var(--color-divider);padding:0 1rem;display:flex}.detail-panel-body{flex:1;padding:1.25rem 1.5rem;overflow-y:auto}.detail-fields{flex-direction:column;gap:1rem;display:flex}.detail-field-row{align-items:center;gap:1rem;display:flex}.detail-field-row .field-label{flex-shrink:0;width:100px;margin-bottom:0}.detail-field-row .board-cell{border:1px solid var(--color-divider);border-radius:var(--radius-sm);flex:1}.detail-comments{flex-direction:column;gap:1rem;display:flex}.comment-item{gap:.75rem;display:flex}.comment-avatar{border-radius:var(--radius-full);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.6rem;font-weight:700;display:flex}.comment-body{flex:1}.comment-header{font-size:var(--text-xs);align-items:baseline;gap:.5rem;display:flex}.comment-time{color:var(--color-tx-faint)}.comment-text{font-size:var(--text-sm);color:var(--color-tx);margin-top:.25rem}.comment-input-row{gap:.5rem;margin-top:.5rem;display:flex}.comment-input-row .input-field{min-height:36px}@media (width<=768px){.app-shell{grid-template-columns:1fr;grid-template-areas:"header""main"}.sidebar{z-index:30;width:240px;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.app-shell:not(.sidebar-collapsed) .sidebar{transform:translate(0)}.mobile-menu-btn{display:flex}.form-grid{grid-template-columns:1fr}}
