:root{--bg:#080c0a;--surface:#0f1410;--card:#141a16;--card2:#1a2218;--border:#1f2b23;--green:#186448;--green-l:#1d7a58;--green-b:#2ecc8a;--green-dim:rgba(24,100,72,0.15);--red:#e05252;--yellow:#f0b429;--text:#eef2f0;--muted:#7a9080;--muted2:#3d5045;--font:'Montserrat',sans-serif;--r:12px;--rs:8px;}
*{box-sizing:border-box;margin:0;padding:0;}html,body{height:100%;}
body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.6;}
.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background-image:radial-gradient(ellipse at 20% 50%,rgba(24,100,72,.1) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(24,100,72,.06) 0%,transparent 50%);}
.login-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:48px 40px;position:relative;}
.login-card::before{content:'';position:absolute;top:0;left:10%;right:10%;height:2px;background:linear-gradient(90deg,transparent,var(--green),transparent);}
.login-logo{text-align:center;margin-bottom:28px;}
.logo-badge{display:inline-block;background:var(--green);color:white;font-size:10px;font-weight:800;letter-spacing:3px;padding:5px 12px;border-radius:4px;margin-bottom:10px;}
.login-logo h1{font-size:26px;font-weight:900;letter-spacing:-.5px;}
.login-logo h1 span{color:var(--green-b);}
.login-logo p{font-size:11px;color:var(--muted);margin-top:4px;font-weight:600;letter-spacing:1px;text-transform:uppercase;}
.hint{font-size:11px;color:var(--muted);text-align:center;margin-top:14px;}
.field{margin-bottom:16px;}
.field label,.field-label{display:block;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:8px;}
.field input,.field textarea,.field select,.inp{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);color:var(--text);font-family:var(--font);font-size:14px;padding:11px 14px;transition:border-color .2s;outline:none;}
.field textarea,.inp.tall{resize:vertical;min-height:90px;}
.field input:focus,.field textarea:focus,.field select:focus,.inp:focus{border-color:var(--green);}
.field input::placeholder,.field textarea::placeholder,.inp::placeholder{color:var(--muted2);}
.field select option{background:var(--surface);}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 22px;border-radius:var(--rs);font-family:var(--font);font-size:12px;font-weight:700;letter-spacing:.5px;cursor:pointer;border:none;transition:all .2s;text-transform:uppercase;}
.btn-primary{background:var(--green);color:white;width:100%;}
.btn-primary:hover{background:var(--green-l);}
.btn-secondary{background:transparent;border:1px solid var(--border);color:var(--muted);}
.btn-secondary:hover{border-color:var(--green);color:var(--text);}
.btn-ghost{background:var(--green-dim);color:var(--green-b);border:1px solid rgba(46,204,138,.2);}
.btn-ghost:hover{background:rgba(24,100,72,.25);}
.btn-danger{background:rgba(224,82,82,.12);color:var(--red);border:1px solid rgba(224,82,82,.2);}
.btn-danger:hover{background:rgba(224,82,82,.22);}
.btn-sm{padding:7px 14px;font-size:11px;}
.btn-auto{width:auto!important;}
.btn:disabled{opacity:.4;cursor:not-allowed;}
.alert{padding:12px 16px;border-radius:var(--rs);font-size:13px;font-weight:500;margin-bottom:14px;}
.alert-error{background:rgba(224,82,82,.1);border:1px solid rgba(224,82,82,.3);color:#f09090;}
.alert-success{background:rgba(46,204,138,.1);border:1px solid rgba(46,204,138,.3);color:var(--green-b);}
.alert-info{background:rgba(240,180,41,.1);border:1px solid rgba(240,180,41,.3);color:#f0c060;}
.hidden{display:none!important;}
.page-wrap{display:flex;flex-direction:column;min-height:100vh;}
.app-header{background:var(--card);border-bottom:1px solid var(--border);padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:58px;position:sticky;top:0;z-index:100;}
.header-logo{display:flex;align-items:center;gap:10px;}
.header-logo .badge{background:var(--green);color:white;font-size:9px;font-weight:800;letter-spacing:2px;padding:4px 8px;border-radius:4px;}
.header-logo h2{font-size:15px;font-weight:900;}
.header-right{display:flex;align-items:center;gap:12px;}
.header-user{font-size:12px;color:var(--muted);font-weight:600;}
.header-user span{color:var(--green-b);}
.tabs{display:flex;border-bottom:1px solid var(--border);background:var(--card);padding:0 24px;overflow-x:auto;}
.tab{padding:13px 18px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap;user-select:none;}
.tab:hover{color:var(--text);}
.tab.active{color:var(--green-b);border-bottom-color:var(--green-b);}
.app-content{padding:22px;max-width:1100px;width:100%;margin:0 auto;flex:1;}
.tab-pane{display:none;}
.tab-pane.active{display:block;}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:22px;margin-bottom:14px;}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}
.card-title{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);}
.page-hdr{margin-bottom:22px;}
.page-hdr h2{font-size:21px;font-weight:900;letter-spacing:-.5px;margin-bottom:2px;}
.page-hdr p{font-size:12px;color:var(--muted);}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
@media(max-width:900px){.grid-3{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.grid-2,.grid-3{grid-template-columns:1fr;}.app-content{padding:14px;}.login-card{padding:30px 18px;margin:14px;}}
/* Week cards */
.week-card{background:var(--card);border:1px solid var(--border);border-radius:var(--rs);padding:16px 20px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;transition:border-color .2s;}
.week-card:hover{border-color:rgba(24,100,72,.4);}
.week-card.wc-active{border-left:3px solid var(--green-b);}
.wc-left{display:flex;align-items:center;gap:12px;}
.wc-dot{font-size:14px;flex-shrink:0;}
.wc-title{font-size:14px;font-weight:700;margin-bottom:4px;}
.wc-badges{display:flex;gap:6px;flex-wrap:wrap;}
.wb{font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;letter-spacing:.3px;}
.wb-on{background:rgba(46,204,138,.15);color:var(--green-b);border:1px solid rgba(46,204,138,.2);}
.wb-off{background:rgba(61,80,69,.2);color:var(--muted2);border:1px solid var(--border);}
.wc-actions{display:flex;gap:8px;flex-shrink:0;}
/* Breadcrumb */
.breadcrumb{display:flex;align-items:center;gap:10px;margin-bottom:20px;flex-wrap:wrap;}
.breadcrumb-back{display:inline-flex;align-items:center;gap:6px;background:var(--green-dim);color:var(--green-b);border:1px solid rgba(46,204,138,.2);border-radius:var(--rs);padding:8px 14px;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;text-transform:uppercase;letter-spacing:.5px;}
.breadcrumb-back:hover{background:rgba(24,100,72,.25);}
.breadcrumb-sep{color:var(--muted2);}
.breadcrumb-current{font-size:14px;font-weight:700;color:var(--text);}
/* Activity cards */
.activity-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:22px;transition:border-color .2s;}
.activity-card.av-available{border-color:rgba(240,180,41,.35);}
.activity-card.av-completed{border-color:rgba(46,204,138,.3);}
.activity-card.av-locked{opacity:.6;}
.ac-icon{font-size:28px;margin-bottom:10px;}
.ac-day{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--green-b);margin-bottom:4px;}
.ac-title{font-size:17px;font-weight:800;margin-bottom:6px;}
.ac-desc{font-size:12px;color:var(--muted);margin-bottom:10px;line-height:1.5;}
.ac-pts{display:inline-flex;align-items:center;gap:5px;background:var(--green-dim);color:var(--green-b);font-size:10px;font-weight:700;padding:4px 10px;border-radius:20px;margin-bottom:12px;}
.sbadge{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;padding:4px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px;}
.sbadge.locked{background:rgba(61,80,69,.3);color:var(--muted2);}
.sbadge.available{background:rgba(240,180,41,.15);color:var(--yellow);}
.sbadge.completed{background:rgba(46,204,138,.15);color:var(--green-b);}
/* Avatar */
.av{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--green);flex-shrink:0;}
.av-letter{width:40px;height:40px;border-radius:50%;background:var(--green);display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:white;border:2px solid var(--green);flex-shrink:0;}
.av-sm{width:30px;height:30px;font-size:12px;}
.av-lg{width:64px;height:64px;font-size:24px;}
.header-av-wrap{position:relative;cursor:pointer;}
.header-av-wrap .av,.header-av-wrap .av-letter{width:34px;height:34px;font-size:13px;border:2px solid var(--border);transition:border-color .2s;}
.header-av-wrap:hover .av,.header-av-wrap:hover .av-letter{border-color:var(--green-b);}
.av-cam{position:absolute;bottom:-2px;right:-2px;background:var(--green);color:white;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:9px;border:2px solid var(--bg);}
/* Table */
.table-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--border);}
table{width:100%;border-collapse:collapse;}
thead th{background:var(--surface);padding:11px 14px;text-align:left;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);}
tbody tr{border-top:1px solid var(--border);transition:background .15s;}
tbody tr:hover{background:var(--card2);}
tbody tr.me{background:var(--green-dim);}
tbody td{padding:11px 14px;font-size:13px;}
/* Toggle */
.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--border);}
.toggle-row:last-child{border-bottom:none;}
.tl{font-size:14px;font-weight:600;}.ts{font-size:11px;color:var(--muted);}
.toggle{position:relative;width:44px;height:24px;cursor:pointer;flex-shrink:0;}
.toggle input{display:none;}
.toggle-track{position:absolute;inset:0;background:var(--border);border-radius:12px;transition:background .2s;}
.toggle-thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;background:white;border-radius:50%;transition:left .2s;pointer-events:none;}
.toggle input:checked+.toggle-track{background:var(--green);}
.toggle input:checked~.toggle-thumb{left:23px;}
/* Quiz */
.quiz-q{background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:16px;margin-bottom:12px;}
.q-num{font-size:10px;font-weight:700;color:var(--green-b);letter-spacing:1px;text-transform:uppercase;margin-bottom:7px;}
.q-text{font-size:14px;font-weight:600;margin-bottom:12px;line-height:1.5;}
.opt-label{display:flex;align-items:center;gap:11px;padding:10px 13px;background:var(--card);border:1px solid var(--border);border-radius:var(--rs);margin-bottom:7px;cursor:pointer;transition:all .15s;font-size:13px;}
.opt-label:hover{border-color:var(--green);background:var(--green-dim);}
.opt-label input[type=radio]{appearance:none;-webkit-appearance:none;width:15px;height:15px;border:2px solid var(--muted2);border-radius:50%;flex-shrink:0;}
.opt-label input[type=radio]:checked{background:var(--green);border-color:var(--green);box-shadow:inset 0 0 0 3px var(--card);}
.opt-label.correct{border-color:var(--green-b);background:rgba(46,204,138,.1);color:var(--green-b);}
.opt-label.wrong{border-color:var(--red);background:rgba(224,82,82,.1);color:var(--red);}
/* VF */
.vf-opt{display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:var(--rs);margin-bottom:6px;cursor:pointer;transition:all .15s;font-size:13px;font-weight:700;border:1px solid transparent;}
.vf-v{background:rgba(46,204,138,.08);border-color:rgba(46,204,138,.2);color:var(--green-b);}
.vf-f{background:rgba(224,82,82,.08);border-color:rgba(224,82,82,.2);color:var(--red);}
.vf-v:hover{background:rgba(46,204,138,.18);}
.vf-f:hover{background:rgba(224,82,82,.18);}
.vf-v input[type=radio]{appearance:none;-webkit-appearance:none;width:15px;height:15px;border:2px solid rgba(46,204,138,.4);border-radius:50%;flex-shrink:0;}
.vf-f input[type=radio]{appearance:none;-webkit-appearance:none;width:15px;height:15px;border:2px solid rgba(224,82,82,.4);border-radius:50%;flex-shrink:0;}
.vf-v input[type=radio]:checked{background:var(--green-b);border-color:var(--green-b);box-shadow:inset 0 0 0 3px var(--card);}
.vf-f input[type=radio]:checked{background:var(--red);border-color:var(--red);box-shadow:inset 0 0 0 3px var(--card);}
.vf-v.correct,.vf-f.correct{border-color:var(--green-b)!important;background:rgba(46,204,138,.15)!important;color:var(--green-b)!important;}
.vf-v.wrong,.vf-f.wrong{border-color:var(--red)!important;background:rgba(224,82,82,.15)!important;color:var(--red)!important;}
.case-desc{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--green);border-radius:var(--rs);padding:14px;font-size:13px;line-height:1.8;margin-bottom:18px;white-space:pre-wrap;}
/* Builder item */
.q-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:13px;margin-bottom:9px;}
.q-item-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;}
.q-item-lbl{font-size:10px;font-weight:700;color:var(--green-b);letter-spacing:1px;text-transform:uppercase;}
.q-item-body{font-size:13px;margin-bottom:4px;}
.vf-ans{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;display:inline-block;}
.vf-ans.v{background:rgba(46,204,138,.15);color:var(--green-b);}
.vf-ans.f{background:rgba(224,82,82,.12);color:var(--red);}
/* Stats */
.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:22px;}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:18px;}
.s-lbl{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
.s-val{font-size:28px;font-weight:900;color:var(--green-b);line-height:1;}
.s-sub{font-size:11px;color:var(--muted);margin-top:3px;}
/* History */
.hist-row{display:flex;align-items:flex-start;justify-content:space-between;padding:13px 15px;background:var(--card);border:1px solid var(--border);border-radius:var(--rs);margin-bottom:7px;}
.hw{font-size:10px;font-weight:700;color:var(--green-b);letter-spacing:1px;margin-bottom:2px;}
.ht{font-size:13px;font-weight:600;}
.hb{font-size:11px;color:var(--muted);margin-top:3px;display:flex;gap:10px;flex-wrap:wrap;}
.h-pts{font-size:22px;font-weight:900;flex-shrink:0;}
/* Misc */
.ilbl{display:block;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.divider{height:1px;background:var(--border);margin:18px 0;}
.flex{display:flex;align-items:center;}
.flex-between{display:flex;align-items:center;justify-content:space-between;}
.gap-8{gap:8px;}.mt-12{margin-top:12px;}.mt-16{margin-top:16px;}.mb-14{margin-bottom:14px;}.mb-22{margin-bottom:22px;}
.text-muted{color:var(--muted);font-size:13px;}code.pill{background:var(--surface);padding:2px 7px;border-radius:4px;font-size:12px;font-family:monospace;}
/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:200;display:none;align-items:center;justify-content:center;padding:16px;}
.modal-overlay.open{display:flex;}
.modal-box{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:28px;width:100%;max-width:620px;max-height:90vh;overflow-y:auto;position:relative;}
.modal-close{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--muted);font-size:20px;cursor:pointer;line-height:1;}
/* Spinner */
.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--green-b);border-radius:50%;animation:spin .8s linear infinite;margin:40px auto;}
@keyframes spin{to{transform:rotate(360deg);}}
/* Toast */
#toast{position:fixed;bottom:22px;right:22px;background:var(--card);border:1px solid rgba(46,204,138,.4);border-radius:8px;padding:11px 16px;font-family:var(--font);font-size:13px;font-weight:600;z-index:300;max-width:300px;box-shadow:0 8px 28px rgba(0,0,0,.5);opacity:0;transition:opacity .3s;pointer-events:none;color:var(--green-b);}
/* Photo upload */
.photo-upload-preview{width:100px;height:100px;border-radius:50%;object-fit:cover;border:3px solid var(--green);display:block;margin:0 auto 16px;}
.photo-upload-placeholder{width:100px;height:100px;border-radius:50%;background:var(--green);display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:900;color:white;margin:0 auto 16px;border:3px solid var(--green);}
.file-input-wrap{position:relative;overflow:hidden;display:inline-block;}
.file-input-wrap input[type=file]{position:absolute;left:0;top:0;opacity:0;width:100%;height:100%;cursor:pointer;}
/* Podium */
.podium-wrap{display:flex;align-items:flex-end;justify-content:center;gap:14px;margin-bottom:28px;padding:20px 0;}
