:root{--clr-primary: #6c63ff;--clr-primary-dark: #5a52e0;--clr-good: #22c55e;--clr-good-bg: #dcfce7;--clr-ok: #f59e0b;--clr-ok-bg: #fef3c7;--clr-bad: #ef4444;--clr-bad-bg: #fee2e2;--clr-bg: #f0eeff;--clr-card: #ffffff;--clr-border: #e5e7eb;--clr-text: #1f2937;--clr-text-light: #6b7280;--radius: 16px;--radius-sm: 10px;--shadow: 0 2px 12px rgba(108, 99, 255, .1);--shadow-hover: 0 6px 24px rgba(108, 99, 255, .18);--font: "Segoe UI", system-ui, -apple-system, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--clr-bg);color:var(--clr-text);min-height:100vh;font-size:16px;line-height:1.5}.app{min-height:100vh}.main{max-width:1100px;margin:0 auto;padding:28px 16px 56px;display:flex;flex-direction:column;gap:24px}.header{background:var(--clr-primary);color:#fff;padding:20px 24px;box-shadow:0 2px 16px #6c63ff4d}.header-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:14px}.header-icon{flex-shrink:0;opacity:.9}.header-text{flex:1}.header h1{font-size:1.6rem;font-weight:800;letter-spacing:-.5px}.header-subtitle{font-size:.88rem;opacity:.8;margin-top:2px}.header-class-badge{flex-shrink:0;background:#ffffff2e;color:#fff;border:2px solid rgba(255,255,255,.45);border-radius:24px;padding:6px 18px;font-size:1rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s;letter-spacing:.3px}.header-class-badge:hover{background:#ffffff47;border-color:#ffffffb3}.overall-card{background:var(--clr-card);border-radius:var(--radius);padding:28px 24px;text-align:center;box-shadow:var(--shadow);border:3px solid var(--clr-border);transition:border-color .2s}.overall-card.good{border-color:var(--clr-good)}.overall-card.ok{border-color:var(--clr-ok)}.overall-card.bad{border-color:var(--clr-bad)}.overall-label{font-size:.8rem;color:var(--clr-text-light);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.overall-value{font-size:4rem;font-weight:900;line-height:1.1;margin:8px 0 6px;color:var(--clr-text)}.overall-card.good .overall-value{color:var(--clr-good)}.overall-card.ok .overall-value{color:var(--clr-ok)}.overall-card.bad .overall-value{color:var(--clr-bad)}.overall-meta{font-size:.9rem;color:var(--clr-text-light)}.overall-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.overall-values-row{display:flex;align-items:center;justify-content:center;gap:40px;flex-wrap:wrap;margin:4px 0}.overall-sim-block{display:flex;flex-direction:column;align-items:center;gap:2px}.overall-sim-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:#0284c7;opacity:.85}.overall-sim-value{font-size:3rem;font-weight:900;line-height:1.1;color:#0ea5e9}.overall-sim-value.good{color:var(--clr-good)}.overall-sim-value.ok{color:var(--clr-ok)}.overall-sim-value.bad{color:var(--clr-bad)}.overall-sim-hint{font-size:.82rem;color:#0284c7;opacity:.75;font-style:italic}.overall-sim-count{color:#0284c7;font-weight:600}.btn-sim-toggle{background:#0ea5e91a;color:#0284c7;border:1.5px solid #7dd3fc;border-radius:20px;padding:5px 14px;font-size:.82rem;font-weight:600;cursor:pointer;font-family:var(--font);transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.btn-sim-toggle:hover{background:#0ea5e92e;border-color:#38bdf8}.btn-sim-toggle.active{background:#0ea5e9;color:#fff;border-color:#0ea5e9}.btn-sim-toggle.active:hover{background:#0284c7;border-color:#0284c7}.average-badge.sim-badge{background:#e0f2fe;color:#0369a1;border:1.5px dashed #38bdf8;font-size:.92rem}.upgrade-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;font-size:.8rem;font-weight:800;vertical-align:middle;margin-left:7px;cursor:default;flex-shrink:0;line-height:1}.upgrade-badge-notif{position:absolute;top:-7px;right:-7px;width:16px;height:16px;border-radius:50%;font-size:.6rem;font-weight:800;display:flex;align-items:center;justify-content:center;color:#fff;border:2px solid #fff;line-height:1}.upgrade-badge.effort-1{background:#dcfce7;color:#16a34a;border:1.5px solid #86efac}.upgrade-badge.effort-1 .upgrade-badge-notif{background:#22c55e}.upgrade-badge.effort-2{background:#fef3c7;color:#b45309;border:1.5px solid #fcd34d}.upgrade-badge.effort-2 .upgrade-badge-notif{background:#f59e0b}.upgrade-badge.effort-3{background:#fee2e2;color:#b91c1c;border:1.5px solid #fca5a5}.upgrade-badge.effort-3 .upgrade-badge-notif{background:#ef4444}.add-subject-form{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}.add-subject-input{flex:1;min-width:220px;padding:13px 16px;border:2px solid var(--clr-border);border-radius:var(--radius-sm);font-size:1rem;font-family:var(--font);outline:none;background:var(--clr-card);transition:border-color .15s,box-shadow .15s}.add-subject-input:focus{border-color:var(--clr-primary);box-shadow:0 0 0 3px #6c63ff26}.btn{padding:12px 20px;border-radius:var(--radius-sm);border:none;cursor:pointer;font-size:1rem;font-family:var(--font);font-weight:600;transition:background .15s,transform .1s,box-shadow .15s;white-space:nowrap;min-height:44px}.btn:active{transform:scale(.97)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn:disabled:active{transform:none}.btn-primary{background:var(--clr-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--clr-primary-dark);box-shadow:0 4px 12px #6c63ff59}.btn-small{padding:9px 16px;font-size:.9rem;min-height:40px;background:var(--clr-primary);color:#fff}.btn-small:hover:not(:disabled){background:var(--clr-primary-dark)}.btn-ghost{background:transparent;color:var(--clr-text-light);font-size:.82rem;padding:6px 12px;min-height:36px;border:1px solid var(--clr-border)}.btn-ghost:hover{background:var(--clr-bad-bg);color:var(--clr-bad);border-color:var(--clr-bad)}.btn-danger-small{background:var(--clr-bad);color:#fff;padding:6px 14px;font-size:.85rem;min-height:36px}.btn-danger-small:hover{background:#dc2626}.btn-cancel{background:#e5e7eb;color:var(--clr-text);padding:6px 14px;font-size:.85rem;min-height:36px}.btn-cancel:hover{background:#d1d5db}.form-error{color:var(--clr-bad);font-size:.83rem;width:100%;margin-top:4px;font-weight:500}.list-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.list-controls-label{font-size:.88rem;color:var(--clr-text-light);font-weight:600}.list-controls-buttons{display:flex;gap:8px}.sort-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sort-label{font-size:.82rem;color:var(--clr-text-light);font-weight:600;white-space:nowrap}.btn-group{display:inline-flex}.btn-group>.btn{border-radius:0;position:relative;z-index:0}.btn-group>.btn:not(:first-child){margin-left:-1.5px}.btn-group>.btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.btn-group>.btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.btn-group>.btn:hover,.btn-group>.btn:focus{z-index:1}.btn-group>.btn.btn-sort--active{z-index:2}.btn-sort{background:var(--clr-card);color:var(--clr-text-light);border:1.5px solid var(--clr-border);padding:6px 12px;font-size:.82rem;min-height:34px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:4px}.btn-sort:hover:not(:disabled){border-color:var(--clr-primary);color:var(--clr-primary)}.btn-sort--active{background:var(--clr-primary);color:#fff;border-color:var(--clr-primary)}.btn-sort--active:hover:not(:disabled){background:var(--clr-primary-dark);color:#fff;border-color:var(--clr-primary-dark)}.sort-arrow{font-size:.85rem;line-height:1}.btn-collapse-all{background:var(--clr-card);color:var(--clr-text);border:1.5px solid var(--clr-border);padding:7px 14px;font-size:.82rem;min-height:36px;border-radius:var(--radius-sm)}.btn-collapse-all:hover:not(:disabled){border-color:var(--clr-primary);color:var(--clr-primary)}.btn-collapse-all:disabled{opacity:.35;cursor:not-allowed}.btn-collapse-all:disabled:active{transform:none}.subject-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}@media (max-width: 768px){.subject-grid{grid-template-columns:1fr}}.subject-card{background:var(--clr-card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);border:2px solid var(--clr-border);border-left:5px solid var(--clr-border);display:flex;flex-direction:column;gap:14px;transition:box-shadow .2s,transform .15s}.subject-card:hover{box-shadow:var(--shadow-hover)}.subject-card.good{border-left-color:var(--clr-good)}.subject-card.ok{border-left-color:var(--clr-ok)}.subject-card.bad{border-left-color:var(--clr-bad)}.subject-card.collapsed{gap:0}.subject-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.subject-name{font-size:1.05rem;font-weight:700;cursor:default;flex:1;color:var(--clr-text);transition:color .15s}.subject-name.editable{cursor:pointer}.subject-name.editable:hover{color:var(--clr-primary)}.subject-name-input{font-size:1.05rem;font-weight:700;border:2px solid var(--clr-primary);border-radius:6px;padding:4px 10px;flex:1;font-family:var(--font);outline:none;box-shadow:0 0 0 3px #6c63ff26}.subject-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.grade-count-badge{background:#e5e7eb;color:var(--clr-text-light);font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:20px;flex-shrink:0}.average-badge{min-width:52px;text-align:center;padding:6px 12px;border-radius:20px;font-size:1.05rem;font-weight:800;flex-shrink:0}.average-badge.good{background:var(--clr-good-bg);color:#15803d}.average-badge.ok{background:var(--clr-ok-bg);color:#b45309}.average-badge.bad{background:var(--clr-bad-bg);color:#b91c1c}.average-badge.no-grade{background:#f3f4f6;color:var(--clr-text-light)}.btn-chevron{background:none;border:none;cursor:pointer;font-size:.72rem;color:var(--clr-text-light);padding:4px 6px;flex-shrink:0;border-radius:4px;transition:background .1s,color .1s;min-height:28px;min-width:28px;display:flex;align-items:center;justify-content:center}.btn-chevron:hover{background:#f3f4f6;color:var(--clr-primary)}.grades-row{display:flex;flex-wrap:wrap;gap:7px;min-height:36px;align-items:center}.no-grades-text{font-size:.85rem;color:var(--clr-text-light);font-style:italic}.grade-chip{display:inline-flex;align-items:center;gap:3px;padding:5px 10px;border-radius:20px;font-size:.95rem;font-weight:700;-webkit-user-select:none;user-select:none}.grade-chip.good{background:var(--clr-good-bg);color:#15803d}.grade-chip.ok{background:var(--clr-ok-bg);color:#b45309}.grade-chip.bad{background:var(--clr-bad-bg);color:#b91c1c}.grade-chip-delete{background:none;border:none;cursor:pointer;font-size:1.1rem;line-height:1;padding:0 0 0 2px;opacity:.45;color:inherit;display:flex;align-items:center;min-width:16px;min-height:16px;transition:opacity .1s}.grade-chip-delete:hover{opacity:1}.add-grade-form{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.add-grade-input{width:130px;padding:9px 12px;border:2px solid var(--clr-border);border-radius:var(--radius-sm);font-size:.95rem;font-family:var(--font);outline:none;transition:border-color .15s}.add-grade-input:focus{border-color:var(--clr-primary);box-shadow:0 0 0 3px #6c63ff1f}.smart-hint{border-top:1px solid var(--clr-border);padding-top:12px}.smart-hint-body{display:flex;flex-direction:column;gap:10px}.smart-hint-label{font-size:.9rem;color:var(--clr-text)}.smart-hint-slider-row{display:flex;align-items:center;gap:8px}.slider-min,.slider-max{font-size:.8rem;color:var(--clr-text-light);font-weight:600;flex-shrink:0;min-width:14px}.smart-hint-slider{flex:1;accent-color:var(--clr-primary);cursor:pointer;height:6px}.smart-hint-result{font-size:.92rem;padding:10px 14px;border-radius:var(--radius-sm);background:#f9fafb;font-weight:500}.smart-hint-result.positive{background:var(--clr-good-bg);color:#15803d}.smart-hint-result.negative{background:var(--clr-bad-bg);color:#b91c1c}.smart-hint-result.neutral{background:#f3f4f6;color:var(--clr-text)}.smart-hint-delta{font-weight:700}.subject-card-footer{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.confirm-text{font-size:.85rem;color:var(--clr-bad);font-weight:600}.empty-state{text-align:center;padding:56px 24px;color:var(--clr-text-light);background:var(--clr-card);border-radius:var(--radius);box-shadow:var(--shadow);border:2px dashed var(--clr-border)}.empty-state p{font-size:1.05rem}.bottom-bar{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.bottom-bar .add-subject-form{flex:1;min-width:220px}.data-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.btn-defaults{background:#7c3aed;color:#fff;padding:12px 18px}.btn-defaults:hover:not(:disabled){background:#6d28d9;box-shadow:0 4px 12px #7c3aed59}.btn-import{background:#059669;color:#fff;padding:12px 18px}.btn-import:hover:not(:disabled){background:#047857;box-shadow:inset 0 0 0 999px #0000000f}.btn-export{background:#1d4ed8;color:#fff;padding:12px 18px}.btn-export:hover:not(:disabled){background:#1e40af;box-shadow:inset 0 0 0 999px #0000000f}.btn-export:disabled{opacity:.45;cursor:not-allowed}.btn-group>.btn-import+.btn-export,.btn-group>.btn-export+.btn-import{border-left-color:#ffffff40}.import-status{width:100%;text-align:right;font-size:.88rem;font-weight:600;padding:4px 0 0}.import-status--success{color:var(--clr-good)}.import-status--error{color:var(--clr-bad)}.toast{text-align:right;font-size:.88rem;font-weight:600;color:#15803d;background:var(--clr-good-bg);border:1px solid #bbf7d0;border-radius:var(--radius-sm);padding:10px 16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}.modal{background:var(--clr-card);border-radius:var(--radius);padding:28px 24px 20px;max-width:380px;width:100%;box-shadow:0 20px 60px #00000040}.modal-title{font-size:1.3rem;font-weight:800;text-align:center;margin-bottom:8px}.modal-subtitle{font-size:.85rem;color:var(--clr-text-light);text-align:center;margin-bottom:20px;line-height:1.5}.modal-section{margin-bottom:14px}.modal-section-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--clr-text-light);margin-bottom:6px}.class-row{display:flex;gap:6px}.btn-class{flex:1;padding:10px 4px;border:2px solid var(--clr-border);background:var(--clr-bg);border-radius:var(--radius-sm);font-size:1.05rem;font-weight:700;cursor:pointer;transition:background .12s,border-color .12s,color .12s;font-family:var(--font);min-height:44px}.btn-class:hover{background:var(--clr-primary);color:#fff;border-color:var(--clr-primary)}.modal-close-btn{width:100%;margin-top:8px}@media (max-width: 480px){.header h1{font-size:1.3rem}.overall-value{font-size:3rem}.main{padding:20px 12px 48px;gap:18px}.subject-card{padding:16px}.add-subject-form{flex-direction:column}.add-subject-input{min-width:unset;width:100%}.btn-primary{width:100%;justify-content:center}}
