@import"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght,SOFT@0,9..144,300..700,0..100;1,9..144,300..700,0..100&family=Newsreader:ital,opsz,wght@0,6..72,300..600;1,6..72,300..600&family=JetBrains+Mono:wght@300..700&family=Noto+Sans+KR:wght@300;400;500;700&display=swap";.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.login-card{background:var(--tars-paper);border-radius:2px;padding:2rem;width:100%;max-width:400px;border:1px solid var(--tars-rule)}.login-header{text-align:center;margin-bottom:2rem}.login-icon{color:var(--primary-color);margin-bottom:1rem}.login-header h1{font-size:1.875rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.login-header p{color:var(--text-secondary);font-size:.875rem}.login-form{margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-size:.875rem;font-weight:500;color:var(--text-primary)}.input-error{border-color:var(--error-color)!important}.error-message{display:block;margin-top:.25rem;font-size:.75rem;color:var(--error-color)}.btn-block{width:100%}.login-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;padding-top:1rem;border-top:1px solid var(--border)}.language-toggle{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:.875rem;font-weight:500;padding:.25rem .5rem;min-height:44px;border-radius:.25rem;transition:background-color .2s}.language-toggle:hover{background-color:var(--surface)}.version{font-size:.75rem;color:var(--text-secondary)}@media (max-width: 400px){.login-card{padding:24px}.login-header h1{font-size:26px}}.data-management{padding:0;max-width:1400px;margin:0 auto}.management-header{margin-bottom:30px}.management-header h2{display:flex;align-items:center;gap:10px;color:var(--color-primary);margin-bottom:10px}.data-management .subtitle{color:var(--color-text-secondary);font-size:1.1rem}.data-management .message{padding:12px 20px;border-radius:2px;margin-bottom:20px;display:flex;align-items:center;gap:10px;animation:slideDown .3s ease}.data-management .message.success{background:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success)}.data-management .message.error{background:var(--color-danger-light);color:var(--color-danger);border:1px solid var(--color-danger)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.management-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:20px;margin-bottom:30px}.management-card{background:var(--tars-paper);border-radius:2px;padding:25px;border:1px solid var(--tars-rule);transition:transform .2s,box-shadow .2s;min-width:0}.management-card:hover{transform:translateY(-2px);border:1px solid var(--tars-rule)}.management-card.full-width{grid-column:1 / -1}.management-card h3{display:flex;align-items:center;gap:8px;color:var(--color-primary);margin-bottom:15px;font-size:1.2rem}.card-description{color:var(--color-text-secondary);margin-bottom:20px;line-height:1.6}.data-management .button-group{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.data-management .btn-primary,.data-management .btn-secondary{padding:10px 20px;border:none;border-radius:2px;font-size:1rem;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s ease;font-weight:500}.data-management .btn-primary{background:var(--color-primary);color:#fff}.data-management .btn-primary:hover{background:var(--color-primary-dark);transform:translateY(-1px);border:1px solid var(--tars-rule)}.data-management .btn-secondary{background:var(--color-background);color:var(--color-primary);border:2px solid var(--color-primary)}.data-management .btn-secondary:hover{background:var(--color-primary);color:#fff;transform:translateY(-1px)}.data-summary{background:var(--color-background);border-radius:2px;padding:15px}.data-summary h4{color:var(--color-text);margin-bottom:10px;font-size:.95rem;text-transform:uppercase;letter-spacing:.5px}.data-summary ul{list-style:none;padding:0}.data-summary li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--color-border)}.data-summary li:last-child{border-bottom:none}.data-summary li span{color:var(--color-text-secondary)}.data-summary li strong{color:var(--color-primary);font-weight:600}.report-options{background:var(--color-background);border-radius:2px;padding:15px}.report-options h4{color:var(--color-text);margin-bottom:10px;font-size:.95rem;text-transform:uppercase;letter-spacing:.5px}.feature-list{list-style:none;padding:0}.feature-list li{display:flex;align-items:center;gap:8px;padding:6px 0;color:var(--color-text-secondary)}.feature-list li svg{color:var(--color-success)}.export-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:15px}.export-btn{background:var(--color-background);border:2px solid var(--color-border);border-radius:2px;padding:15px;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.export-btn:hover{border-color:var(--color-primary);background:var(--tars-paper);transform:translateY(-2px);border:1px solid var(--tars-rule)}.export-btn svg{color:var(--color-primary)}.export-btn span{display:block}.export-btn .count{font-size:.85rem;color:var(--color-text-secondary)}.info-section{background:var(--tars-paper);border-radius:2px;padding:25px;border:1px solid var(--tars-rule)}.info-section h3{color:var(--color-primary);margin-bottom:20px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}.info-section .info-item{display:block;padding:15px;background:var(--color-background);border-radius:2px;border-left:4px solid var(--color-primary)}.data-management .info-item h4{color:var(--color-text);margin-bottom:10px;font-size:1rem}.data-management .info-item p{color:var(--color-text-secondary);line-height:1.6;font-size:.95rem}.export-btn svg[size="20"]:nth-of-type(1){width:20px;height:20px}@media (max-width: 768px){.data-management{max-width:100%;padding:0}.management-grid{grid-template-columns:minmax(0,1fr)}.export-grid{grid-template-columns:1fr}.data-management .button-group{flex-direction:column}.data-management .btn-primary,.data-management .btn-secondary{width:100%;justify-content:center;white-space:normal}.data-management .management-card,.data-management .info-section,.data-management .report-settings{padding:16px}.data-management .info-item{min-width:0;overflow-wrap:anywhere}.data-management .settings-row>label{min-width:0;width:100%}.data-management .settings-row select{max-width:100%}}.report-settings{background:var(--color-background);border-radius:2px;padding:20px;margin-top:20px;border:1px solid var(--color-border)}.report-settings h4{color:var(--color-text);margin-bottom:15px;font-size:1rem;text-transform:uppercase;letter-spacing:.5px}.data-management .settings-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:15px;margin-bottom:20px}.data-management .checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;color:var(--color-text-secondary);min-height:44px;transition:color .2s}.data-management .checkbox-label:hover{color:var(--color-text)}.data-management .checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.settings-row{display:flex;gap:20px;margin-bottom:20px;flex-wrap:wrap}.settings-row label{display:flex;flex-direction:column;gap:5px;color:var(--color-text-secondary);font-size:.95rem}.settings-row select{padding:8px 12px;border:1px solid var(--color-border);border-radius:2px;background:var(--tars-paper);color:var(--color-text);font-size:1rem;cursor:pointer;transition:border-color .2s}.settings-row select:hover{border-color:var(--color-primary)}.settings-row select:focus{outline:none;border-color:var(--color-primary)}.btn-save{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--color-success);color:#fff;border:none;border-radius:2px;font-size:.95rem;cursor:pointer;transition:all .3s ease}.btn-save:hover{background:var(--color-success-dark, #45a049);transform:translateY(-1px);border:1px solid var(--tars-rule)}.report-format-info{background:var(--color-background, #f8f9fa);border-left:4px solid var(--color-primary, #2962ff);padding:15px;margin-top:15px;border-radius:4px}.report-format-info p{margin:8px 0;line-height:1.6;color:var(--color-text-secondary, #666);font-size:.95rem}.report-format-info strong{color:var(--color-primary, #2962ff);font-weight:600}@media print{.data-management{background:var(--tars-paper)}.management-card{border:1px solid #ddd;page-break-inside:avoid}.data-management button{display:none}}.dashboard{max-width:1200px;margin:0 auto;min-width:0}.page-title{font-size:2rem;font-weight:700;margin-bottom:1.5rem;color:var(--text-primary)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:var(--tars-paper);border-radius:2px;padding:1rem;display:flex;align-items:center;gap:.75rem;min-width:0;border:1px solid var(--tars-rule)}.stat-icon{width:36px;height:36px;flex-shrink:0;border-radius:2px;display:flex;align-items:center;justify-content:center}.stat-card.primary .stat-icon{background-color:#2563eb1a;color:var(--primary-color)}.stat-card.warning .stat-icon{background-color:#f59e0b1a;color:var(--warning-color)}.stat-card.success .stat-icon{background-color:#16a34a1a;color:var(--success-color)}.stat-card.secondary .stat-icon{background-color:#64748b1a;color:var(--secondary-color)}.stat-content .stat-value{display:block;font-size:1.875rem;font-weight:700;margin:0;color:var(--text-primary)}.stat-content p{margin:0;color:var(--text-secondary);font-size:.875rem}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.dashboard .grade-list,.dashboard .schedule-list,.dashboard .test-list{display:flex;flex-direction:column;gap:.75rem}.dashboard .grade-item,.dashboard .schedule-item,.dashboard .test-item{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:.75rem 0;border-bottom:1px solid var(--tars-rule)}.dashboard .grade-item>div,.dashboard .schedule-item>div,.dashboard .test-item>div{min-width:0;overflow-wrap:anywhere}.dashboard .badge{flex-shrink:0;white-space:nowrap}.dashboard-item-description{display:block;color:var(--tars-muted);font-size:14px;line-height:1.5;margin-top:4px}.dashboard-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:24px}.dashboard-header .page-title{margin:0}.dashboard-shortcuts{display:flex;flex-wrap:wrap;gap:8px}.dashboard-section-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:12px}.dashboard .dashboard-section-heading h2{margin:0}.dashboard-section-heading a{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:var(--tars-accent);font-size:14px;text-underline-offset:4px}.dashboard-empty{color:var(--tars-muted);margin:8px 0}.badge{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;background-color:var(--primary-color);color:#fff}.badge.pending{background-color:var(--warning-color)}.badge.running{background-color:var(--success-color)}.badge.completed{background-color:var(--secondary-color)}.card h2{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:var(--text-primary)}@media (max-width: 768px){.dashboard-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1100px) and (min-width: 901px){.stat-card{flex-direction:column;align-items:flex-start}.dashboard-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width: 480px){.dashboard .card{padding:16px}.dashboard .stat-card{padding:12px;gap:8px}.dashboard .stat-icon{display:none}.dashboard .stats-grid{gap:10px;margin-bottom:20px}.dashboard .stat-value{font-size:28px}.dashboard .page-title{font-size:26px}.dashboard .dashboard-shortcuts{width:100%}.dashboard .dashboard-shortcuts .btn{flex:1;padding-inline:10px}}.data-management-section{margin-top:40px;padding-top:30px;border-top:2px solid var(--color-border)}.navigation{background:var(--tars-paper);border-right:1px solid var(--tars-rule-strong);width:248px;height:100vh;height:100dvh;display:flex;flex-direction:column;position:fixed;left:0;top:0;z-index:30}.nav-header{padding:24px 20px 20px;border-bottom:1px solid var(--tars-rule);display:grid;gap:10px}.nav-title{font-family:var(--serif-display);font-size:23px;font-variation-settings:"opsz" 36,"wght" 450,"SOFT" 30;color:var(--tars-ink);margin:0;line-height:1.25;letter-spacing:-.01em}.nav-header:after{content:"TARS · Biopolymer Studio";font-family:var(--font-ui, sans-serif);font-size:11px;letter-spacing:.02em;color:var(--tars-muted)}.nav-menu{flex:1;min-height:0;padding:12px 0;overflow-y:auto;overscroll-behavior:contain}.nav-item{display:flex;align-items:center;gap:12px;min-height:46px;padding:10px 20px;color:var(--tars-ink-soft);text-decoration:none;font-family:var(--font-ui, sans-serif);font-size:14px;font-weight:500;line-height:1.4;letter-spacing:0;border-left:3px solid transparent;transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.nav-item svg,.nav-button svg,.nav-mobile-more-item svg{flex-shrink:0}.nav-item:hover{background:var(--tars-paper-2);color:var(--tars-ink)}.nav-item.active{background:var(--tars-paper-2);color:var(--tars-accent);border-left-color:var(--tars-accent);font-weight:700}.nav-footer{padding:14px 18px 18px;border-top:1px solid var(--tars-rule)}.nav-button{width:100%;min-height:44px;display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:8px;background:transparent;border:1px solid var(--tars-rule);border-radius:6px;color:var(--tars-ink-soft);cursor:pointer;font-family:var(--font-ui, sans-serif);font-size:14px;font-weight:500;letter-spacing:0;line-height:1.4;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.nav-button:hover{background:var(--tars-paper-2);border-color:var(--tars-rule-strong);color:var(--tars-ink)}.nav-button.logout{margin-bottom:0;color:var(--tars-err)}.nav-button.logout:hover{background:var(--tars-err);border-color:var(--tars-err);color:var(--tars-paper)}.navigation :focus-visible,.nav-mobile-bottom :focus-visible,.nav-mobile-more-panel :focus-visible{outline:3px solid var(--tars-accent);outline-offset:-3px}.app{display:flex}.main-content{margin-left:248px;flex:1;min-width:0;padding:36px clamp(24px,3.5vw,56px) 80px;min-height:100vh;background:var(--tars-paper)}@media (min-width: 901px) and (max-width: 1120px){.navigation{width:216px}.main-content{margin-left:216px;padding:28px 24px 72px}.nav-item{padding-inline:16px}}.storage-error-banner{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:12px;max-width:min(640px,calc(100vw - 32px));padding:12px 16px;background:var(--tars-err);color:var(--tars-paper);border-radius:6px;font-family:var(--font-ui, sans-serif);font-size:14px;line-height:1.4;box-shadow:0 2px 12px #1a18142e}.storage-error-message{flex:1;min-width:0}.storage-error-dismiss{flex-shrink:0;background:transparent;border:1px solid rgba(245,241,232,.4);border-radius:6px;color:var(--tars-paper);cursor:pointer;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.storage-error-dismiss:hover{background:#f5f1e826}.nav-running-banner{display:flex;align-items:center;gap:10px;margin:14px 16px 0;padding:10px 12px;background:var(--tars-accent);color:var(--tars-paper);text-decoration:none;border-radius:6px;font-family:var(--font-ui, sans-serif);font-size:13px;min-height:48px}.nav-running-banner:hover{background:var(--tars-accent-dark)}.nav-running-pulse{width:8px;height:8px;border-radius:50%;background:var(--tars-paper);box-shadow:0 0 0 4px #f5f1e82e;flex-shrink:0}.nav-running-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.nav-running-status{font-weight:700}.nav-running-detail{font-size:12px;opacity:.95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-mobile-bottom,.nav-mobile-backdrop{display:none}@media (max-width: 900px){.navigation{display:none}.app{flex-direction:column}.main-content{margin-left:0;padding:24px clamp(16px,3vw,28px) calc(96px + env(safe-area-inset-bottom,0px))}.nav-mobile-bottom{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;height:calc(68px + env(safe-area-inset-bottom,0px));box-sizing:border-box;background:var(--tars-paper);border-top:1px solid var(--tars-rule-strong);z-index:40;padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}.nav-mobile-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:5px 2px;color:var(--tars-ink-soft);text-decoration:none;font-family:var(--font-ui, sans-serif);font-size:12px;font-weight:500;line-height:1.3;letter-spacing:0;text-transform:none;min-height:64px;min-width:0;border:0;border-top:3px solid transparent;background:transparent;cursor:pointer}.nav-mobile-item.active{color:var(--tars-accent);border-top-color:var(--tars-accent);font-weight:700;background:var(--tars-paper-2)}.nav-mobile-item>span{max-width:100%;white-space:nowrap}.nav-mobile-icon{position:relative;display:inline-flex}.nav-mobile-recording-dot{position:absolute;right:-5px;top:-2px;width:8px;height:8px;border-radius:50%;background:var(--tars-err);outline:2px solid var(--tars-paper)}.nav-mobile-item.is-recording{color:var(--tars-accent)}.nav-mobile-backdrop{display:flex;align-items:flex-end;justify-content:center;position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#1a18146b;padding:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) calc(80px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))}.nav-mobile-more-panel{width:100%;max-width:560px;max-height:100%;overflow-y:auto;overscroll-behavior:contain;padding:16px;background:var(--tars-paper);border:1px solid var(--tars-rule-strong);border-radius:14px;box-shadow:0 16px 40px #1a181433}.nav-mobile-more-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.nav-mobile-more-header h2{margin:0;font-family:var(--font-ui, sans-serif);font-size:19px;font-weight:700;letter-spacing:0}.nav-mobile-close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;border:1px solid var(--tars-rule);border-radius:6px;background:transparent;color:var(--tars-ink);cursor:pointer}.nav-mobile-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.nav-mobile-more-item{display:flex;align-items:center;gap:9px;min-height:52px;padding:10px;color:var(--tars-ink);text-decoration:none;font-family:var(--font-ui, sans-serif);font-size:14px;line-height:1.35;letter-spacing:0;border:1px solid var(--tars-rule);border-radius:6px;background:var(--tars-paper-2)}.nav-mobile-more-item.active{color:var(--tars-accent);border-color:var(--tars-accent);background:var(--tars-paper);font-weight:700}.nav-mobile-more-item span{min-width:0;overflow-wrap:anywhere}.nav-mobile-more-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--tars-rule)}.nav-mobile-more-actions .nav-button{margin:0}}@media (max-width: 360px){.main-content{padding-inline:12px}.nav-mobile-more-panel{padding:12px}.nav-mobile-more-item{padding:9px 8px;gap:7px;font-size:13px}}:root{--primary-color: #2C5D3F;--secondary-color: #6B6256;--success-color: #2C5D3F;--warning-color: #9A4F24;--error-color: #8E2B2B;--background: #F5F1E8;--surface: #EDE7D8;--text-primary: #1A1814;--text-secondary: #3A352D;--border: #D8D0BE;--color-primary: #2C5D3F;--color-primary-dark: #1F4730;--color-secondary: #6B6256;--color-background: #F5F1E8;--color-surface: #EDE7D8;--color-text: #1A1814;--color-text-secondary: #3A352D;--color-border: #D8D0BE;--color-success: #2C5D3F;--color-success-light: #EDE7D8;--color-warning: #9A4F24;--color-warning-light: #F5E4D5;--color-danger: #8E2B2B;--color-danger-light: #F0DADA;--color-error: #8E2B2B;--tars-paper: #F5F1E8;--tars-paper-2: #EDE7D8;--tars-paper-3: #E4DCC4;--tars-paper-50: #FAF7EE;--tars-ink: #1A1814;--tars-ink-soft: #3A352D;--tars-muted: #6B6256;--tars-rule: #D8D0BE;--tars-rule-strong: #B8AF99;--tars-accent: #2C5D3F;--tars-accent-dark: #1F4730;--tars-accent-warm: #9A4F24;--tars-accent-cool: #3A5E7A;--tars-hi: #F5D88C;--tars-ok: #2C5D3F;--tars-warn: #9A4F24;--tars-err: #8E2B2B;--serif-display: "Fraunces", "Noto Sans KR", "Malgun Gothic", "Times New Roman", serif;--serif-body: "Newsreader", "Noto Sans KR", "Malgun Gothic", Georgia, serif;--mono: "JetBrains Mono", "SF Mono", "Noto Sans KR", "Malgun Gothic", Menlo, monospace;--korean: "Noto Sans KR", "Malgun Gothic", sans-serif;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", "Malgun Gothic", sans-serif;--ease: cubic-bezier(.22, .61, .36, 1);--dur-fast: .16s;--dur-mid: .22s}*{box-sizing:border-box}body{margin:0;padding:0;background-color:var(--background);background-image:radial-gradient(circle at 1px 1px,rgba(26,24,20,.025) 1px,transparent 0);background-size:24px 24px;color:var(--text-primary);font-family:var(--font-ui);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button svg,a svg{flex-shrink:0}img,video{max-width:100%}html{scroll-padding-block:24px 100px}::selection{background:var(--tars-hi);color:var(--tars-ink)}h1,h2,h3,h4{font-family:var(--font-ui);font-optical-sizing:auto;letter-spacing:-.01em;color:var(--text-primary);line-height:1.35;margin:0}h1{font-variation-settings:"opsz" 144,"wght" 380,"SOFT" 30}h2{font-variation-settings:"opsz" 72,"wght" 400,"SOFT" 30}h3{font-variation-settings:"opsz" 36,"wght" 450,"SOFT" 30}h1 em,h2 em,h3 em{font-style:italic;color:var(--tars-accent);font-variation-settings:"opsz" 72,"wght" 380,"SOFT" 90}.num,[data-numeric],.tabular-nums,.stat-value,.metric-value{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum","ss01";letter-spacing:.01em}.container{max-width:1320px;margin:0 auto;padding:0 1.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.25rem;border-radius:2px;border:0;cursor:pointer;font-family:var(--font-ui);font-size:14px;line-height:1.4;letter-spacing:normal;text-transform:none;text-decoration:none;font-weight:500;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);min-height:44px;max-width:100%;white-space:normal;overflow-wrap:anywhere}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background-color:var(--tars-accent);color:var(--tars-paper)}.btn-primary:hover{background-color:var(--tars-accent-dark)}.btn-secondary{background-color:transparent;color:var(--tars-ink);border:1px solid var(--tars-rule-strong)}.btn-secondary:hover{background-color:var(--tars-paper-2)}.btn-ghost{background:transparent;color:var(--tars-ink);border:0}.btn-ghost:hover{background:var(--tars-paper-2)}.btn-danger{background:var(--tars-err);color:var(--tars-paper)}.input{padding:.6rem .75rem;background:var(--tars-paper);border:1px solid var(--tars-rule);border-radius:2px;font-family:var(--font-ui);font-size:16px;color:var(--tars-ink);width:100%;min-width:0;min-height:44px;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.input:focus{outline:none;border-color:var(--tars-accent);box-shadow:inset 0 -1px 0 var(--tars-accent)}.input::placeholder{color:var(--tars-muted)}.input[type=number],input[type=number]{font-family:var(--mono);font-variant-numeric:tabular-nums}.card{background:var(--tars-paper);border:1px solid var(--tars-rule);border-radius:2px;padding:1.5rem;box-shadow:none;margin-bottom:1rem}.panel{background:var(--tars-paper-50);border:1px solid var(--tars-rule);padding:1.25rem;border-radius:2px}.grid{display:grid;gap:1rem}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 768px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}}.flex{display:flex}.flex-between{justify-content:space-between;align-items:center}.flex-center{justify-content:center;align-items:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.font-medium,.font-semibold{font-weight:500}.font-bold{font-weight:600}.text-center{text-align:center}.text-right{text-align:right}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--tars-muted)}.text-success{color:var(--tars-ok)}.text-warning{color:var(--tars-warn)}.text-error{color:var(--tars-err)}.caps{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--tars-muted)}.rule-h{border:0;border-top:1px solid var(--tars-rule);height:0;margin:0}.status-success{background:transparent;color:var(--tars-ok);border:1px solid var(--tars-ok);padding:2px 10px;border-radius:2px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}.status-warning{background:transparent;color:var(--tars-warn);border:1px solid var(--tars-warn);padding:2px 10px;border-radius:2px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}.status-error{background:transparent;color:var(--tars-err);border:1px solid var(--tars-err);padding:2px 10px;border-radius:2px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}table{font-family:var(--font-ui);border-collapse:collapse;width:100%}thead th{font-family:var(--font-ui);font-size:13px;letter-spacing:normal;text-transform:none;color:var(--tars-ink-soft);text-align:left;padding:12px 14px;background:var(--tars-paper-2);border-bottom:1px solid var(--tars-rule-strong);font-weight:500}tbody td{padding:12px 14px;border-bottom:.5px solid var(--tars-rule);font-size:14px;color:var(--tars-ink)}tbody td.num,tbody td[data-numeric]{font-family:var(--mono);font-variant-numeric:tabular-nums}tbody tr:hover{background:var(--tars-paper-2)}:focus-visible{outline:none;box-shadow:0 0 0 2px var(--tars-paper),0 0 0 4px var(--tars-accent);border-radius:2px}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:var(--tars-rule)!important;stroke-dasharray:2 4}.recharts-text{fill:var(--tars-ink-soft)!important;font-family:var(--font-ui)!important;font-size:12px!important;letter-spacing:normal}.recharts-default-tooltip{background:var(--tars-paper)!important;border:1px solid var(--tars-rule-strong)!important;border-radius:2px!important;font-family:var(--mono)!important;font-size:12px!important;color:var(--tars-ink)!important}@media (max-width: 900px),(pointer: coarse){.main-content input:not([type=checkbox]):not([type=radio]):not([type=range]),.main-content select,.main-content textarea{font-size:max(16px,1rem);min-height:44px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{body{background-image:none;background:#fff}.no-print{display:none!important}}
