:root{color-scheme:light;--bg: #f0f2f5;--bg-elevated: #ffffff;--text: #0f172a;--text-muted: #64748b;--border: #e2e8f0;--accent: #2563eb;--accent-soft: #eff6ff;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 2px rgb(15 23 42 / .06), 0 12px 40px -16px rgb(15 23 42 / .12);--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--bg-blob-a: #dbeafe;--bg-blob-b: #e0e7ff;--badge-border: #bfdbfe;--segmented-bg: #f8fafc;--segmented-checked-ring: rgb(37 99 235 / .12);--upload-zone-dash: #cbd5e1;--upload-zone-bg: #f8fafc;--upload-zone-hover-border: #94a3b8;--upload-zone-hover-bg: #f1f5f9;--info-pill-bg: #f1f5f9;--error-banner-border: #fecaca;--error-banner-bg: #fef2f2;--error-banner-text: #b91c1c;--warnings-border: #fde68a;--warnings-bg: #fffbeb;--warnings-text: #92400e;--empty-state-bg: #fafafa;--table-head-fg: #475569;--table-head-bg: #f8fafc;--table-cell-border: #f1f5f9;--table-row-hover: #fafbfc;--summary-bar-border: #c7d2fe;--summary-bar-bg: linear-gradient(135deg, #eef2ff 0%, #eff6ff 100%);--summary-item-bg: rgb(255 255 255 / .72);--summary-item-border: rgb(199 210 254 / .85);--summary-label: #4338ca;--summary-value: #1e1b4b;--summary-diff-border: #86efac;--summary-diff-bg: linear-gradient(160deg, #ecfdf5 0%, #f0fdf4 100%);--summary-diff-shadow: rgb(34 197 94 / .12);--summary-diff-label: #166534;--summary-diff-value: #15803d;--summary-hint: #6366f1;--overlay-scrim: rgb(15 23 42 / .48);--elevated-shadow: 0 25px 50px -12px rgb(15 23 42 / .25);--elevated-shadow-strong: 0 25px 50px -12px rgb(15 23 42 / .28);--spinner-track: #e2e8f0;--dot-idle: #e2e8f0;--btn-primary-fg: #fff;--btn-primary-border: #1d4ed8;--btn-primary-hover-bg: #1d4ed8;--btn-secondary-bg: #f8fafc;--btn-secondary-hover-bg: #f1f5f9;--btn-text-muted: #64748b;--modal-scrim: rgb(15 23 42 / .5);--modal-block-bg: #fafbfc;--modal-legend-fg: #64748b;--field-label-fg: #475569;--input-focus-ring: rgb(37 99 235 / .35);--input-focus-border: #93c5fd;--auth-field-label: #475569;--auth-error: #b91c1c}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}.app-root{min-height:100vh;padding:clamp(20px,4vw,40px) clamp(16px,3vw,28px) 56px;background:radial-gradient(1200px 600px at 10% -10%,var(--bg-blob-a) 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,var(--bg-blob-b) 0%,transparent 50%),var(--bg)}.app-shell{max-width:1080px;margin:0 auto}.app-header{margin-bottom:28px}.eyebrow{margin:0 0 6px;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.app-header h1{margin:0 0 10px;font-size:clamp(1.55rem,3vw,1.85rem);font-weight:700;letter-spacing:-.02em}.lede{margin:0;max-width:52ch;color:var(--text-muted);font-size:.95rem}.muted{color:var(--text-muted)}.panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px 22px;margin-bottom:18px}.panel-table{padding-bottom:16px}.panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.panel-head h2{margin:0;font-size:1.05rem;font-weight:600}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:600;color:var(--accent);background:var(--accent-soft);border:1px solid var(--badge-border)}.control-bar{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px 24px;margin-bottom:20px;width:100%;min-width:0;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.control-bar .segmented{margin-bottom:0;flex-wrap:nowrap;flex-shrink:0}.segmented{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:0}.segmented label{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--segmented-bg);font-size:.875rem;font-weight:500;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.segmented label:has(input:checked){border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--segmented-checked-ring)}.segmented input{accent-color:var(--accent)}.upload-zone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:120px;padding:20px;border:2px dashed var(--upload-zone-dash);border-radius:var(--radius-sm);background:var(--upload-zone-bg);text-align:center;transition:border-color .15s ease,background .15s ease}.upload-zone:hover{border-color:var(--upload-zone-hover-border);background:var(--upload-zone-hover-bg)}.upload-zone input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-zone strong{font-size:.9rem}.upload-zone span.muted{font-size:.8rem;color:var(--text-muted)}.meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:14px;font-size:.85rem;color:var(--text-muted)}.meta-row .file-name{color:var(--text);font-weight:500}.info-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:var(--info-pill-bg);font-size:.8rem;color:var(--text-muted)}.info-pill.is-busy{color:var(--accent);background:var(--accent-soft)}.error-banner{margin-top:14px;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--error-banner-border);background:var(--error-banner-bg);color:var(--error-banner-text);font-size:.875rem}.warnings{margin:0 0 18px;padding:12px 16px;border-radius:var(--radius-sm);border:1px solid var(--warnings-border);background:var(--warnings-bg);color:var(--warnings-text);font-size:.875rem}.warnings li{margin:4px 0 4px 18px}.empty-state{margin:24px 0 8px;padding:28px 20px;text-align:center;color:var(--text-muted);font-size:.9rem;border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--empty-state-bg)}.table-scroll{overflow-x:auto;margin:0 -4px;border-radius:var(--radius-sm);border:1px solid var(--border)}table{width:100%;min-width:640px;border-collapse:collapse;font-size:.8125rem}thead th{position:sticky;top:0;z-index:1;padding:11px 14px;text-align:left;font-weight:600;color:var(--table-head-fg);background:var(--table-head-bg);border-bottom:1px solid var(--border);white-space:nowrap}tbody td{padding:11px 14px;border-bottom:1px solid var(--table-cell-border);vertical-align:middle;white-space:nowrap}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--table-row-hover)}.summary-bar{display:flex;flex-direction:column;gap:14px;margin-top:18px;padding:16px 18px;border-radius:var(--radius-sm);border:1px solid var(--summary-bar-border);background:var(--summary-bar-bg)}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.summary-item{padding:14px 16px;border-radius:var(--radius-sm);background:var(--summary-item-bg);border:1px solid var(--summary-item-border)}.summary-item .label{margin:0;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--summary-label)}.summary-item .value{margin:6px 0 0;font-size:1.28rem;font-weight:700;letter-spacing:-.02em;color:var(--summary-value)}.summary-item--diff{border-color:var(--summary-diff-border);background:var(--summary-diff-bg);box-shadow:0 0 0 1px var(--summary-diff-shadow)}.summary-item--diff .label{color:var(--summary-diff-label)}.summary-item--diff .value--diff{color:var(--summary-diff-value);font-size:1.42rem}.summary-bar .hint{margin:0;font-size:.78rem;line-height:1.45;color:var(--summary-hint)}@media (max-width: 800px){.summary-grid{grid-template-columns:1fr}}.loader-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--overlay-scrim);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:loader-backdrop-in .28s ease-out}@keyframes loader-backdrop-in{0%{opacity:0}to{opacity:1}}.loader-card{width:100%;max-width:420px;padding:40px 36px 36px;text-align:center;border-radius:16px;background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--elevated-shadow);animation:loader-card-in .35s cubic-bezier(.22,1,.36,1)}@keyframes loader-card-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.loader-spinner{width:48px;height:48px;margin:0 auto 22px;border:3px solid var(--spinner-track);border-top-color:var(--accent);border-radius:50%;animation:loader-spin .85s linear infinite}@keyframes loader-spin{to{transform:rotate(360deg)}}.loader-status{margin:0;min-height:2.75em;display:flex;align-items:center;justify-content:center;font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:var(--text);animation:loader-status-in .4s ease}@keyframes loader-status-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.loader-track{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:28px}.loader-dot{width:8px;height:8px;border-radius:999px;background:var(--dot-idle);transition:background .25s ease,transform .25s ease}.loader-dot.is-active{background:var(--accent);transform:scale(1.15)}.mstudio-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:8px 0 4px}.mstudio-hint{margin:0;max-width:52ch;font-size:.85rem;line-height:1.45}.mstudio-hint a{color:var(--accent);font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;font-family:inherit;cursor:pointer;border:1px solid transparent;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn.primary{color:var(--btn-primary-fg);background:var(--accent);border-color:var(--btn-primary-border)}.btn.primary:hover{background:var(--btn-primary-hover-bg)}.btn.secondary{color:var(--text);background:var(--btn-secondary-bg);border-color:var(--border)}.btn.secondary:hover{background:var(--btn-secondary-hover-bg)}.btn-text{font:inherit;font-size:.8rem;font-weight:500;color:var(--btn-text-muted);background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:3px}.btn-remove{margin-top:6px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--modal-scrim);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:loader-backdrop-in .22s ease-out}.modal-dialog{width:100%;max-width:520px;max-height:min(90vh,720px);overflow-y:auto;padding:26px 26px 22px;border-radius:16px;background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--elevated-shadow-strong)}.modal-title{margin:0 0 10px;font-size:1.2rem;font-weight:700;letter-spacing:-.02em}.modal-lede{margin:0 0 20px;font-size:.875rem;color:var(--text-muted);line-height:1.5}.modal-lede .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem;color:var(--text)}.modal-fields{display:flex;flex-direction:column;gap:18px}.modal-artikel-block{margin:0;padding:14px 16px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--modal-block-bg)}.modal-artikel-block legend{padding:0 6px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--modal-legend-fg)}.field{display:flex;flex-direction:column;gap:6px;margin-top:10px}.field:first-of-type{margin-top:4px}.field>span{font-size:.78rem;font-weight:600;color:var(--field-label-fg)}.field input{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font:inherit;font-size:.9rem}.field input:focus{outline:2px solid var(--input-focus-ring);outline-offset:1px;border-color:var(--input-focus-border)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 480px){.field-row{grid-template-columns:1fr}}.modal-actions{display:flex;flex-direction:column;gap:14px;margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}.modal-actions-right{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.header-row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 20px}.header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;flex-shrink:0}.header-logout{margin-top:0;flex-shrink:0}.auth-gate{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:radial-gradient(1200px 600px at 10% -10%,var(--bg-blob-a) 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,var(--bg-blob-b) 0%,transparent 50%),var(--bg)}.auth-gate-bar{position:absolute;top:clamp(16px,3vw,24px);right:clamp(16px,3vw,28px);z-index:2}.auth-gate--loading{color:var(--text-muted);font-size:.95rem}.auth-loading{margin:0}.auth-card{width:100%;max-width:380px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 26px 26px}.auth-card-title{margin:0 0 8px;font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.auth-card-lede{margin:0 0 20px;color:var(--text-muted);font-size:.92rem}.auth-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.auth-field>span{font-size:.78rem;font-weight:600;color:var(--auth-field-label)}.auth-field input{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font:inherit;font-size:.95rem}.auth-field input:focus{outline:2px solid var(--input-focus-ring);outline-offset:1px;border-color:var(--input-focus-border)}.auth-error{margin:0 0 14px;font-size:.88rem;color:var(--auth-error)}.auth-submit{width:100%;justify-content:center}.theme-toggle{display:inline-flex;align-items:center;gap:8px}.theme-toggle-icon{display:flex;color:var(--text-muted);opacity:.45;transition:color .2s ease,opacity .2s ease}.theme-toggle-icon.is-active{color:var(--accent);opacity:1}.theme-switch{position:relative;width:44px;height:26px;flex-shrink:0;padding:0;border:1px solid var(--border);border-radius:999px;background:var(--segmented-bg);cursor:pointer;transition:background .2s ease,border-color .2s ease}.theme-switch:hover{border-color:var(--text-muted)}.theme-switch:focus-visible{outline:2px solid var(--input-focus-ring);outline-offset:2px}.theme-switch-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--bg-elevated);box-shadow:0 1px 3px #0f172a1f;transition:transform .22s cubic-bezier(.22,1,.36,1)}.theme-switch--dark{background:var(--accent-soft);border-color:#60a5fa73}.theme-switch--dark .theme-switch-knob{transform:translate(18px);background:var(--accent);box-shadow:0 1px 4px #2563eb59}html[data-theme=dark] .theme-switch-knob{box-shadow:0 1px 4px #00000059}html[data-theme=dark]{color-scheme:dark;--bg: #0c1017;--bg-elevated: #151b24;--text: #f1f5f9;--text-muted: #94a3b8;--border: #2d3a4d;--accent: #60a5fa;--accent-soft: #1a2744;--shadow: 0 1px 3px rgb(0 0 0 / .45), 0 16px 48px -12px rgb(0 0 0 / .55);--bg-blob-a: rgb(59 130 246 / .2);--bg-blob-b: rgb(99 102 241 / .16);--badge-border: rgb(96 165 250 / .35);--segmented-bg: #1a222d;--segmented-checked-ring: rgb(96 165 250 / .22);--upload-zone-dash: #475569;--upload-zone-bg: #151b24;--upload-zone-hover-border: #64748b;--upload-zone-hover-bg: #1c2430;--info-pill-bg: #1a222d;--error-banner-border: #7f1d1d;--error-banner-bg: #2a1214;--error-banner-text: #fca5a5;--warnings-border: #854d0e;--warnings-bg: #2d2410;--warnings-text: #fcd34d;--empty-state-bg: #121820;--table-head-fg: #cbd5e1;--table-head-bg: #1a222d;--table-cell-border: #252f3d;--table-row-hover: #1c2430;--summary-bar-border: rgb(99 102 241 / .45);--summary-bar-bg: linear-gradient(135deg, #1e1b4b 0%, #1a2744 100%);--summary-item-bg: rgb(21 27 36 / .88);--summary-item-border: rgb(99 102 241 / .38);--summary-label: #a5b4fc;--summary-value: #e0e7ff;--summary-diff-border: #166534;--summary-diff-bg: linear-gradient(160deg, #14532d 0%, #10422a 100%);--summary-diff-shadow: rgb(34 197 94 / .2);--summary-diff-label: #86efac;--summary-diff-value: #bbf7d0;--summary-hint: #a5b4fc;--overlay-scrim: rgb(0 0 0 / .65);--elevated-shadow: 0 25px 50px -12px rgb(0 0 0 / .55);--elevated-shadow-strong: 0 25px 50px -12px rgb(0 0 0 / .6);--spinner-track: #334155;--dot-idle: #334155;--btn-primary-fg: #fff;--btn-primary-border: #2563eb;--btn-primary-hover-bg: #2563eb;--btn-secondary-bg: #1a222d;--btn-secondary-hover-bg: #252f3d;--btn-text-muted: #94a3b8;--modal-scrim: rgb(0 0 0 / .65);--modal-block-bg: #121820;--modal-legend-fg: #94a3b8;--field-label-fg: #94a3b8;--input-focus-ring: rgb(96 165 250 / .35);--input-focus-border: #3b82f6;--auth-field-label: #94a3b8;--auth-error: #fca5a5}
