:root{--font-display: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--bg: #0A0A0A;--surface-1: #141410;--surface-2: #1D1D17;--surface-3: #242419;--border: #2A2A2A;--border-strong: #3A3A32;--text-1: #F5F5F0;--text-2: #B8B8B0;--text-3: #8A8A82;--accent: #E7FF3D;--accent-ink: #0A0A0A;--success: #7CFF6B;--success-bg: rgba(124, 255, 107, .12);--warning: #F2C14E;--warning-bg: rgba(242, 193, 78, .12);--danger: #FF4D4D;--danger-bg: rgba(255, 77, 77, .12);--info: #6FA8FF;--info-bg: rgba(111, 168, 255, .12);--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 6px 20px rgba(0, 0, 0, .5);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--fs-label: 11px;--fs-secondary: 12px;--fs-ui: 13px;--fs-input: 14px;--fs-title: 17px;--fs-headline: 20px;--fs-figure: 24px}:root[data-theme=light]{--bg: #F7F7F4;--surface-1: #FFFFFF;--surface-2: #F1F1EC;--surface-3: #E8E8E1;--border: #E1E1D9;--border-strong: #CFCFC4;--text-1: #0A0A0A;--text-2: #4A4A44;--text-3: #6B6558;--success: #1E8A46;--success-bg: rgba(30, 138, 70, .1);--warning: #B4790C;--warning-bg: rgba(180, 121, 12, .1);--danger: #D93636;--danger-bg: rgba(217, 54, 54, .1);--info: #2563C7;--info-bg: rgba(37, 99, 199, .1);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 6px 20px rgba(0, 0, 0, .1)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text-1);font-family:var(--font-display);font-size:var(--fs-input);line-height:1.55;-webkit-font-smoothing:antialiased;transition:background .15s ease,color .15s ease}strong,b{font-size:var(--fs-input)}.muted,.text-3{color:var(--text-3)}.small{font-size:var(--fs-secondary)}.mono{font-family:var(--font-mono);color:var(--text-1)}.error{background:var(--danger-bg);border:1px solid var(--danger);color:var(--danger);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);margin:var(--sp-2) 0;font-size:var(--fs-ui)}button{cursor:pointer;font:inherit}button.primary{background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-4);font-family:var(--font-display);font-weight:700;font-size:var(--fs-ui);transition:opacity .15s ease}button.primary:hover{opacity:.85}button.primary:disabled{opacity:.4;cursor:not-allowed}button.ghost{background:transparent;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-2);padding:var(--sp-2) var(--sp-4);font-family:var(--font-display);font-weight:600;font-size:var(--fs-ui)}button.ghost:hover{color:var(--text-1);border-color:var(--border-strong)}button.link{background:none;border:0;color:var(--text-2);padding:var(--sp-1) var(--sp-2);font-family:var(--font-display);font-size:var(--fs-ui);font-weight:600}button.link:hover{color:var(--text-1)}button.link.danger{color:var(--danger)}button.link.danger:hover{opacity:.8}input,select{font:inherit;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-1);width:100%;font-family:var(--font-display);font-size:var(--fs-input)}input::placeholder{color:var(--text-3)}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}input[type=color]{padding:2px;height:38px;cursor:pointer}label{display:grid;gap:var(--sp-1);font-size:var(--fs-label);margin-bottom:var(--sp-3);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--text-3)}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm)}.center{min-height:100vh;display:grid;place-items:center;padding:var(--sp-5);background:var(--bg)}.brand-mark{font-family:var(--font-mono);font-weight:800;font-size:var(--fs-secondary);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-bottom:var(--sp-2)}.login{width:340px;display:grid;gap:var(--sp-1)}.login h1{margin:0 0 var(--sp-1);font-size:var(--fs-title);font-weight:700;letter-spacing:-.01em;font-family:var(--font-display)}.bo-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh;transition:grid-template-columns .18s ease}.bo-shell.collapsed{grid-template-columns:64px 1fr}.bo-sidebar{background:var(--surface-1);border-right:1px solid var(--border);padding:var(--sp-4) var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-1);overflow:hidden;transition:padding .18s ease}.bo-sidebar.collapsed{padding:var(--sp-4) var(--sp-2);align-items:center}.bo-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-3)}.bo-sidebar.collapsed .bo-sidebar-head{flex-direction:column;gap:var(--sp-2)}.bo-sidebar .brand{font-family:var(--font-mono);font-weight:800;font-size:var(--fs-ui);letter-spacing:.04em;padding:var(--sp-2) var(--sp-2);color:var(--text-1);white-space:nowrap;overflow:hidden}.bo-sidebar.collapsed .brand{padding:var(--sp-1) 0;font-size:var(--fs-secondary)}.sidebar-toggle{background:none;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-3);width:26px;height:26px;flex:none;display:flex;align-items:center;justify-content:center;font-size:var(--fs-secondary);font-family:var(--font-mono)}.sidebar-toggle:hover{color:var(--text-1);border-color:var(--border-strong)}.bo-sidebar-nav{display:flex;flex-direction:column;gap:var(--sp-1);flex:1;width:100%}.bo-sidebar a,.bo-sidebar button.navlink{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-ui);font-weight:600;color:var(--text-2);text-decoration:none;background:none;border:0;width:100%;text-align:left;font-family:var(--font-display)}.bo-sidebar.collapsed button.navlink{justify-content:center;padding:var(--sp-2)}.bo-sidebar a .dot,.bo-sidebar button.navlink .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5;flex:none}.bo-sidebar a.active,.bo-sidebar button.navlink.active{background:var(--surface-2);color:var(--text-1)}.bo-sidebar a.active .dot,.bo-sidebar button.navlink.active .dot{background:var(--accent);opacity:1}.bo-sidebar.collapsed .label{display:none}.bo-main{display:flex;flex-direction:column;min-width:0}.bo-sidebar-footer{border-top:1px solid var(--border);margin-top:var(--sp-2);padding-top:var(--sp-3);width:100%;display:flex;flex-direction:column;gap:var(--sp-2)}.bo-sidebar.collapsed .bo-sidebar-footer{align-items:center}.theme-toggle{display:flex;align-items:center;gap:var(--sp-1);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:var(--sp-1);cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-label);font-weight:700;width:100%}.bo-sidebar.collapsed .theme-toggle{width:auto}.theme-toggle span{flex:1;text-align:center;padding:var(--sp-2) var(--sp-3);border-radius:999px;color:var(--text-3)}.theme-toggle span.active{background:var(--accent);color:var(--accent-ink)}.user-menu-wrap{position:relative;width:100%}.bo-sidebar.collapsed .user-menu-wrap{width:auto}.user-chip{display:flex;align-items:center;gap:var(--sp-2);width:100%;background:none;border:1px solid transparent;border-radius:var(--r-sm);padding:var(--sp-2);color:var(--text-1);text-align:left}.user-chip:hover{background:var(--surface-2);border-color:var(--border)}.bo-sidebar.collapsed .user-chip{width:32px;height:32px;padding:0;justify-content:center}.user-avatar{flex:none;width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:800;font-size:var(--fs-secondary)}.user-chip-text{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px}.user-chip-email{font-size:var(--fs-secondary);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip-role{font-size:var(--fs-label);color:var(--text-3)}.chevron{flex:none;color:var(--text-3);display:flex}.user-menu{position:absolute;bottom:calc(100% + var(--sp-2));left:0;min-width:220px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:var(--sp-2);z-index:30}.user-menu-email{padding:var(--sp-2) var(--sp-3) var(--sp-2);font-size:var(--fs-secondary);color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid var(--border);margin-bottom:var(--sp-1)}.user-menu-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;background:none;border:0;border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);color:var(--text-2);font-family:var(--font-display);font-size:var(--fs-ui);font-weight:600;text-align:left}.user-menu-item:hover{background:var(--surface-2);color:var(--text-1)}.user-menu-item.danger:hover{color:var(--danger)}.user-menu-divider{height:1px;background:var(--border);margin:var(--sp-1) 0}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:35}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:grid;place-items:center;z-index:50;padding:var(--sp-5)}.modal-panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);width:360px;max-width:100%;padding:var(--sp-5)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}.modal-head h3{margin:0;font-size:var(--fs-input);font-weight:700}.modal-close{background:none;border:0;color:var(--text-3);font-size:var(--fs-figure);line-height:1;padding:var(--sp-1)}.modal-close:hover{color:var(--text-1)}.modal-label{font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin-bottom:var(--sp-2)}.bo-content{padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-5)}.bo-content>div,.bo-content>form{display:flex;flex-direction:column;gap:var(--sp-5)}.page-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-3)}.page-head h2{margin:0;font-size:var(--fs-title);font-weight:700}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3)}.stat-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4)}.stat-card dt{font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:0 0 var(--sp-2)}.stat-card dd{font-family:var(--font-mono);font-weight:800;font-size:var(--fs-figure);margin:0;color:var(--text-1)}.stat-card dd small{font-size:var(--fs-label);font-weight:700;margin-left:var(--sp-2)}.stat-card dd small.up{color:var(--success)}.stat-card dd small.down{color:var(--danger)}.filter-bar{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:center}.filter-bar input,.filter-bar select{width:auto;min-width:160px}.data-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.data-card table{border-collapse:collapse;width:100%;font-size:var(--fs-ui)}.data-card th{text-align:left;font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);background:var(--surface-2)}.data-card td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);color:var(--text-2)}.data-card tr:last-child td{border-bottom:none}.data-card tr:hover td{background:var(--surface-2)}.data-card td select{max-width:220px}.badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:999px;font-family:var(--font-mono);font-size:var(--fs-label);font-weight:700;text-transform:uppercase;letter-spacing:.03em}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.success{background:var(--success-bg);color:var(--success)}.badge.warning{background:var(--warning-bg);color:var(--warning)}.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.neutral{background:var(--surface-3);color:var(--text-3)}.toggle-group{display:flex;align-items:center;gap:2px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:var(--sp-1)}.toggle-group button{background:none;border:0;padding:var(--sp-2) var(--sp-3);border-radius:999px;color:var(--text-3);font-family:var(--font-mono);font-size:var(--fs-label);font-weight:700;text-transform:uppercase;letter-spacing:.03em}.toggle-group button.active{background:var(--accent);color:var(--accent-ink)}.calendar-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:var(--surface-2)}.calendar-weekdays div{padding:var(--sp-2) var(--sp-1);text-align:center;font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);border-bottom:1px solid var(--border)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-cell{min-height:76px;padding:var(--sp-2);border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:var(--sp-1)}.calendar-cell:nth-child(7n){border-right:none}.calendar-cell.empty,.calendar-cell.today{background:var(--surface-2)}.calendar-cell.today .calendar-daynum{color:var(--accent)}.calendar-daynum{font-family:var(--font-mono);font-size:var(--fs-secondary);font-weight:700;color:var(--text-2)}.calendar-camp{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-secondary);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.camp-dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-3)}.tile{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.tile input{font-weight:700}.tile-meta{display:flex;flex-direction:column;gap:var(--sp-2);font-size:var(--fs-ui);color:var(--text-2)}.tile-meta>div{display:flex;align-items:center;gap:var(--sp-2)}.tile-meta .k{color:var(--text-3);font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.06em;min-width:60px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-3)}.campaign{padding:0;overflow:hidden;border-radius:var(--r-lg)}.thumb{width:100%;height:130px;object-fit:cover;display:block}.campaign-body{padding:var(--sp-4)}.row-between{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2)}.actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-3);flex-wrap:wrap;align-items:center}.editor-grid{display:grid;grid-template-columns:1fr 300px;gap:var(--sp-5)}.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.preview-col{position:sticky;top:var(--sp-5);align-self:start}.phone-frame{width:280px;padding:14px;border-radius:44px;background:var(--surface-3);border:1px solid var(--border);box-shadow:var(--shadow-md)}.phone-screen{position:relative;width:100%;aspect-ratio:9 / 16;border-radius:30px;overflow:hidden}.phone-screen-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.phone-screen-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--surface-2)}.phone-screen-panel{position:absolute;left:0;right:0;bottom:0;padding:var(--sp-4);border-top-left-radius:var(--r-lg);border-top-right-radius:var(--r-lg)}.preview-headline{font-weight:800;font-size:var(--fs-headline);letter-spacing:-.01em}.preview-sub{font-size:var(--fs-ui);opacity:.85;margin:var(--sp-1) 0 var(--sp-4)}.preview-cta{display:inline-block;padding:var(--sp-2) var(--sp-4);border-radius:999px;font-size:var(--fs-secondary);font-weight:700;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em}.modal-panel.wide{width:660px}.img-editor{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-5);align-items:start}.img-editor-stage{position:relative;flex:none;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border-strong);background:var(--surface-2);box-shadow:var(--shadow-sm)}.img-editor-canvas{display:block;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.img-editor-canvas:active{cursor:grabbing}.img-editor-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(to right,rgba(255,255,255,.28) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.28) 1px,transparent 1px);background-size:33.333% 33.333%;background-position:-1px -1px}.img-editor-controls{min-width:0}.img-editor-controls p{margin:0 0 var(--sp-4)}.img-editor-controls .actions{margin-top:var(--sp-4)}.img-editor-rotate{display:flex;align-items:center;gap:var(--sp-2)}.img-editor-rotate button{padding:var(--sp-2) var(--sp-3)}.img-editor-quality{border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-secondary);border:1px solid transparent}.img-editor-quality.ok{background:var(--success-bg);color:var(--success);border-color:var(--success)}.img-editor-quality.warn{background:var(--warning-bg);color:var(--warning);border-color:var(--warning)}.img-editor-quality.bad{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:transparent;height:20px;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:var(--surface-3)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;margin-top:-5px;border-radius:50%;background:var(--accent);border:0}input[type=range]::-moz-range-track{height:4px;border-radius:999px;background:var(--surface-3)}input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);border:0}@media (max-width: 720px){.img-editor{grid-template-columns:1fr;justify-items:center}.img-editor-controls{width:100%}}.switch{display:flex;align-items:center;gap:var(--sp-2)}.switch button{width:38px;height:22px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);position:relative}.switch button:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--text-3)}.switch button.on{background:var(--accent);border-color:var(--accent)}.switch button.on:after{left:18px;background:var(--accent-ink)}.toast{display:flex;align-items:center;gap:var(--sp-3);background:var(--surface-1);border:1px solid var(--border);border-left:3px solid var(--success);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-ui);box-shadow:var(--shadow-md);width:fit-content}.modal-demo{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);width:280px;box-shadow:var(--shadow-md)}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-2);padding:var(--sp-7) var(--sp-5);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-3)}.empty-state-icon{font-size:var(--fs-figure);opacity:.5}.empty-state-title{font-size:var(--fs-input);font-weight:700;color:var(--text-2)}.empty-state-desc{font-size:var(--fs-secondary);max-width:320px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:var(--r-sm)}.skeleton-tile{height:148px;border-radius:var(--r-lg)}.skeleton-row td{padding:var(--sp-3) var(--sp-4)}.skeleton-line{height:12px;border-radius:4px;width:70%}@media (max-width: 900px){.bo-shell,.bo-shell.collapsed{grid-template-columns:64px 1fr}.stat-row{grid-template-columns:repeat(2,1fr)}.bo-sidebar:not(.collapsed){position:fixed;top:0;left:0;bottom:0;width:240px;z-index:40;box-shadow:var(--shadow-md)}}@media (max-width: 760px){.editor-grid{grid-template-columns:1fr}.bo-content{padding:var(--sp-4)}.stat-row{grid-template-columns:1fr}}
