:root{--paper: #f8f1df;--paper-dark: #ecdfc6;--ink: #2f2418;--ink-soft: #5a4732;--accent: #8a6843;--accent-soft: rgba(138, 104, 67, .18);--line: rgba(64, 50, 35, .22);--grid: rgba(122, 149, 178, .15);--shadow: rgba(47, 36, 24, .16);--font-display: "Schoolbell", cursive;--font-body: "Schoolbell", cursive;--radius: 20px 14px 22px 12px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}body{font-family:var(--font-body);color:var(--ink);background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px),radial-gradient(circle at top left,rgba(255,255,255,.75),transparent 40%),linear-gradient(180deg,#fbf6ea,#f5ecda);background-size:24px 24px,24px 24px,auto,auto}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.22),transparent 12%,transparent 88%,rgba(47,36,24,.05))}a{color:inherit}button,input,select,textarea{font:inherit}.app-layout{min-height:100vh;display:flex;flex-direction:column}.sidebar{position:sticky;top:0;z-index:20;border-bottom:2px solid var(--ink);background:#f8f1dfe0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.sidebar-inner{width:min(1200px,calc(100% - 32px));margin:0 auto;display:flex;align-items:center;gap:24px;padding:14px 0}.sidebar-logo{text-decoration:none;font-size:2rem;line-height:1;white-space:nowrap}.sidebar-nav{display:flex;flex:1;align-items:center;gap:12px}.sidebar-nav a,.sidebar-link-action,.sidebar-logout{text-decoration:none;border:2px solid transparent;border-radius:999px;padding:8px 14px;color:var(--ink-soft);transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.sidebar-nav a:hover,.sidebar-link-action:hover,.sidebar-logout:hover{background:#ffffff8c;border-color:var(--line);color:var(--ink);transform:translateY(-1px)}.sidebar-nav a.active{background:#ffffff9e;border-color:var(--ink);color:var(--ink)}.sidebar-actions{display:flex;align-items:center;gap:10px}.sidebar-link-action,.sidebar-logout{background:transparent;cursor:pointer}.main-content{width:min(1200px,calc(100% - 32px));margin:0 auto;flex:1;padding:28px 0 48px}.page-header{margin-bottom:24px}.page-header h1{font-size:clamp(2rem,4vw,3rem);line-height:1;margin-bottom:8px}.page-header p{color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase;font-size:.82rem}.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:28px}.stat-card,.chart-container,.data-table-wrapper,.filter-bar,.auth-card,.dashboard-widget,.dashboard-editor,.dashboard-admin-note,.dashboard-status{background:#f8f1dfe0;border:2px solid var(--ink);border-radius:var(--radius);box-shadow:4px 5px 0 var(--shadow)}.stat-card{padding:18px}.stat-card .label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;margin-bottom:6px}.stat-card .value{font-size:2rem;line-height:1}.stat-card .sub{margin-top:6px;color:var(--ink-soft);font-size:.9rem}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px;padding:18px}.loading-bar{height:3px;margin-bottom:20px;border-radius:2px;background:var(--line);overflow:hidden;position:relative}.loading-bar:after{content:"";position:absolute;inset:0;width:40%;background:var(--accent);border-radius:2px;animation:loading-slide 1s ease-in-out infinite}@keyframes loading-slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}.filter-bar .filter-label{display:grid;gap:6px;min-width:160px;color:var(--ink-soft);font-size:.85rem}.filter-label-wide{min-width:min(300px,100%)}.filter-bar input:not([type=checkbox]),.filter-bar select,.auth-form input,.dashboard-editor input,.dashboard-editor select{width:100%;border:2px solid var(--line);background:#ffffff94;color:var(--ink);border-radius:14px;padding:10px 12px;outline:none}.filter-bar input:not([type=checkbox]):focus,.filter-bar select:focus,.auth-form input:focus,.dashboard-editor input:focus,.dashboard-editor select:focus{border-color:var(--ink)}.filter-multiselect{position:relative}.filter-multiselect summary{list-style:none;cursor:pointer;border:2px solid var(--line);border-radius:14px;background:#ffffff94;padding:10px 12px;min-width:220px}.filter-multiselect summary::-webkit-details-marker{display:none}.filter-multiselect[open] summary{border-color:var(--ink)}.filter-multiselect-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:5;width:min(300px,90vw);max-height:320px;overflow:hidden;border:2px solid var(--ink);border-radius:16px;background:var(--paper);box-shadow:4px 5px 0 var(--shadow)}.filter-multiselect-search{padding:10px 12px 0}.filter-multiselect-search input{width:100%;padding:6px 10px;border:1px solid var(--taupe);border-radius:6px;background:var(--cream);color:var(--dark);font-family:var(--font-body);font-size:.8rem;box-sizing:border-box}.filter-multiselect-search input:focus{outline:none;border-color:var(--brown)}.filter-multiselect-actions{display:flex;gap:8px;padding:12px 12px 0}.filter-multiselect-list{display:grid;gap:4px;padding:10px 12px;max-height:260px;overflow-y:auto}.filter-multiselect-option{display:flex;align-items:center;gap:6px}.chart-container,.data-table-wrapper{padding:22px;margin-bottom:24px}.chart-container h3,.data-table-wrapper h3,.dashboard-editor h3{font-size:1.45rem;margin-bottom:14px}.scrollable-table{max-height:480px;overflow-y:auto;border:1px solid var(--line);border-radius:8px}.scrollable-table thead th{position:sticky;top:0;background:var(--paper);z-index:1;box-shadow:0 1px 0 var(--line)}table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;border-bottom:1px dashed var(--line);text-align:left}thead th{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}tbody tr:hover{background:#fff6}.btn{border:2px solid var(--ink);background:#ffffff70;color:var(--ink);border-radius:999px;padding:9px 15px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;box-shadow:2px 3px #2f24181f}.btn:hover:not(:disabled){transform:translateY(-1px);background:#ffffffad}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--ink);color:var(--paper)}.btn-ghost{background:transparent}.btn-small{padding:6px 12px;font-size:.84rem}.badge{display:inline-flex;align-items:center;border:2px solid var(--ink);border-radius:999px;padding:2px 10px;font-size:.78rem;text-transform:uppercase}.badge-success{background:#7ca87642}.badge-error{background:#cb6f6238}.badge-running{background:#ddb76038}.dashboard-home{display:grid;gap:18px}.dashboard-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-end}.dashboard-page-header{margin-bottom:0}.dashboard-stamp{font-size:.8rem}.dashboard-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.dashboard-admin-note,.dashboard-status{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 18px}.dashboard-status-error,.widget-error{color:#8e2f24}.dashboard-editor{display:grid;gap:16px;padding:18px}.dashboard-editor-header,.dashboard-editor-actions{display:flex;justify-content:space-between;gap:12px;align-items:center}.dashboard-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.dashboard-editor-grid label{display:grid;gap:6px;color:var(--ink-soft)}.dashboard-editor-span-2{grid-column:1 / -1}.dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}.dashboard-widget{grid-column:span 4;padding:18px;min-height:250px;display:grid;gap:14px}.dashboard-widget.is-editing{cursor:grab}.dashboard-widget--compact{grid-column:span 3}.dashboard-widget--standard{grid-column:span 4}.dashboard-widget--wide{grid-column:span 8}.dashboard-widget--full{grid-column:1 / -1}.dashboard-widget-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.dashboard-widget-header h2{font-size:1.5rem;line-height:1.05;margin-bottom:4px}.dashboard-widget-header p{color:var(--ink-soft);font-size:.9rem}.dashboard-widget-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.dashboard-drag-handle{border:2px dashed var(--line);border-radius:999px;padding:4px 8px;color:var(--ink-soft);font-size:.82rem}.dashboard-widget-body{min-height:180px}.widget-loading,.widget-empty,.widget-error{height:100%;min-height:180px;display:grid;place-items:center;text-align:center;color:var(--ink-soft)}.dashboard-table-shell{overflow-x:auto}.dashboard-mini-table th,.dashboard-mini-table td{padding:10px 8px;vertical-align:top}.dashboard-mini-table td a{text-decoration:none;border-bottom:1px solid var(--ink)}.dashboard-footer-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.home-card-link{text-decoration:none;padding:10px 14px;border:2px solid var(--ink);border-radius:999px;background:#ffffff70}.recharts-surface,.recharts-wrapper{overflow:visible}.recharts-cartesian-axis-tick-value,.recharts-text{font-family:var(--font-body)}.sketch-tooltip{border:2px solid var(--ink);border-radius:16px;background:#f8f1dff2;box-shadow:3px 4px #2f241829;padding:10px 12px;display:grid;gap:6px}.sketch-tooltip-label{color:var(--ink-soft);font-size:.86rem}.sketch-tooltip-value{display:flex;justify-content:space-between;gap:16px}.auth-shell,.auth-loading{min-height:68vh;display:grid;place-items:center}.auth-card{width:min(520px,100%);padding:26px}.auth-eyebrow,.auth-label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.auth-card h1{font-size:2.2rem;margin:8px 0}.auth-copy{color:var(--ink-soft);margin-bottom:18px}.auth-form{display:grid;gap:12px}.auth-error{color:#8e2f24}.pagination{display:flex;justify-content:center;align-items:center;gap:10px;padding:16px 0}.log-viewer{max-height:500px;overflow-y:auto;border-top:2px solid var(--ink);background:#1e1a16}.log-header{position:sticky;top:0;display:flex;justify-content:space-between;gap:12px;padding:10px 14px;background:#2b251e;color:#d6c9b4;font-size:.8rem}.log-body{padding:8px 0}.log-line{font-family:SF Mono,Fira Code,Consolas,monospace;color:#e9dfd2;font-size:.78rem;line-height:1.45;padding:1px 14px;white-space:pre-wrap;word-break:break-word}.log-line.log-error{color:#f8a4a0;background:#f8a4a014}.log-line.log-warning{color:#f2ca6b;background:#f2ca6b12}.log-line.log-highlight{color:#9fc3ff;font-weight:600}@media(max-width:980px){.sidebar-inner,.main-content{width:min(100%,calc(100% - 24px))}.sidebar-inner{flex-wrap:wrap}.sidebar-nav{order:3;width:100%;flex-wrap:wrap}.dashboard-toolbar,.dashboard-admin-note,.dashboard-editor-header,.dashboard-editor-actions{flex-direction:column;align-items:flex-start}.dashboard-actions{justify-content:flex-start}.dashboard-editor-grid{grid-template-columns:1fr}.dashboard-editor-span-2{grid-column:auto}.dashboard-grid{grid-template-columns:1fr}.dashboard-widget,.dashboard-widget--compact,.dashboard-widget--standard,.dashboard-widget--wide,.dashboard-widget--full{grid-column:auto}}@media(max-width:640px){.main-content{padding:20px 0 36px}.filter-bar{flex-direction:column}.filter-bar .filter-label,.filter-label-wide{min-width:100%}.sidebar-actions{width:100%;justify-content:flex-start}.page-header h1{font-size:2.2rem}}
