@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Montserrat:wght@600;700;800&display=swap";:root{--gold:#705d00;--gold-strong:#554500;--gold-bright:#8a7200;--gold-soft:#fee17a;--teal:#006b5c;--teal-strong:#005045;--mint:#89f6de;--mint-soft:#d3fbf0;--color-bg:#f4f6f9;--color-surface:#fff;--color-surface-low:#f2f4f8;--color-surface-container:#e9edf4;--color-border:#e6e9f1;--color-text:#16202e;--color-text-muted:#667085;--teal-tint:#e6f3f0;--teal-tint-strong:#d4ece6;--gold-tint:#fbf3d6;--color-primary:var(--teal);--color-primary-hover:var(--teal-strong);--color-danger:#ba1a1a;--color-danger-soft:#ffdad6;--color-success:#006b5c;--color-warning:#b54708;--radius-sm:.5rem;--radius:.7rem;--radius-lg:1.15rem;--shadow-sm:0 1px 2px #1018280a, 0 1px 3px #1018280f;--shadow:0 4px 16px #10182814;--shadow-lg:0 18px 44px #10182824;--ring:0 0 0 3px #006b5c2e;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:15px}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}a{color:var(--gold);text-decoration:none;transition:color .15s}a:hover{color:var(--gold-strong)}h1,h2,h3{letter-spacing:-.02em;color:var(--color-text);margin:0 0 .5rem;font-family:Montserrat,Inter,sans-serif}h1{font-size:1.9rem;font-weight:800}h2{font-size:1.25rem;font-weight:700}h3{font-size:1.05rem;font-weight:700}.form-group-title{text-transform:uppercase;letter-spacing:.08em;color:var(--gold);border-bottom:1px solid var(--color-border);margin:0 0 .85rem;padding-bottom:.4rem;font-family:Montserrat,Inter,sans-serif;font-size:.72rem;font-weight:700}button,.btn{font:inherit;cursor:pointer;background:linear-gradient(180deg, #00816f 0%, var(--teal) 100%);color:#fff;border:none;border-radius:.6rem;padding:.62rem 1.2rem;font-weight:600;transition:filter .18s,transform .12s,box-shadow .18s;box-shadow:0 1px 2px #1018281f}button:hover:not(:disabled){filter:brightness(1.06);box-shadow:var(--shadow);transform:translateY(-1px)}button:focus-visible,.btn:focus-visible,a:focus-visible{box-shadow:var(--ring);outline:none}button:active:not(:disabled){box-shadow:none;transform:translateY(0)}button:disabled{opacity:.5;cursor:default}button.gold{background:var(--gold)}button.gold:hover:not(:disabled){background:var(--gold-strong)}button.secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}button.secondary:hover:not(:disabled){background:var(--color-surface-low);border-color:#cdd6ea}.btn.secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.btn.secondary:hover{background:var(--color-surface-low);color:var(--color-text);border-color:#cdd6ea}button.compact,.btn.compact{white-space:nowrap;gap:.4rem;min-height:38px;padding:.48rem .72rem;font-size:.82rem;line-height:1}button.danger{color:var(--color-danger);border:1px solid var(--color-danger-soft);background:0 0}button.danger:hover:not(:disabled){box-shadow:none;background:#fff5f4}input,select,textarea{font:inherit;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:.6rem;width:100%;padding:.62rem .85rem;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;min-height:3rem}input:focus,select:focus,textarea:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px #006b5c26}label{color:var(--color-text-muted);margin-bottom:.35rem;font-size:.82rem;font-weight:600;display:block}.field{margin-bottom:.9rem}.course-form{flex-direction:column;gap:1.1rem;display:flex}.form-section{padding:1.5rem 1.6rem}.section-title{color:var(--color-text);border-bottom:1px solid var(--color-border);margin:0 0 1.2rem;padding-bottom:.7rem;font-family:Montserrat,Inter,sans-serif;font-size:1rem;font-weight:700}.form-actions{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#ffffffd1;align-items:center;gap:.9rem;padding:.85rem 1.2rem;display:flex;position:sticky;bottom:1rem}.form-actions button{min-width:180px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.6rem;transition:box-shadow .2s,transform .2s,border-color .2s}.card.hoverable{cursor:pointer}.card.hoverable:hover{box-shadow:var(--shadow);border-color:var(--teal-tint-strong);transform:translateY(-3px)}table{border-collapse:separate;border-spacing:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-sm);overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:.8rem 1rem;font-size:.92rem}th{background:var(--color-surface-low);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.07em;font-size:.72rem;font-weight:700}tbody tr{transition:background .12s}tbody tr:hover{background:var(--color-surface-low)}tbody tr.clickable-row{cursor:pointer}tbody tr.clickable-row:focus-visible{box-shadow:inset 0 0 0 2px var(--teal);outline:none}tbody tr:last-child td{border-bottom:none}.attempts-table td{vertical-align:middle}.attempt-score-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-low);grid-template-columns:auto 1fr;align-items:center;gap:.35rem .9rem;margin-bottom:1rem;padding:1rem;display:grid}.attempt-score-card.is-approved{border-left:4px solid var(--teal)}.attempt-score-card.is-rejected{border-left:4px solid #c1121f}.attempt-score-card strong{color:var(--color-text);font-size:1.9rem}.attempt-score-card small{color:var(--color-text-muted);grid-column:2;font-weight:700}.attempt-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.attempt-detail-item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-width:0;padding:.9rem}.attempt-detail-item span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.35rem;font-size:.72rem;font-weight:800;display:block}.attempt-detail-item strong{color:var(--color-text);overflow-wrap:anywhere;display:block}.students-table th,.students-table td{vertical-align:middle}.student-actions-cell{min-width:210px}.student-row-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.student-row-actions .action-profile{color:var(--teal-strong);border-color:var(--teal-tint-strong)}.student-row-actions .action-enroll{color:var(--color-text)}.badge{text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;border-radius:999px;padding:.22rem .6rem;font-size:.68rem;font-weight:700;display:inline-block}.badge-published,.badge-converted,.badge-active,.badge-enr-active,.badge-doc-approved,.badge-prog-completed,.badge-paid{background:var(--mint-soft);color:var(--teal-strong)}.badge-new,.badge-pending,.badge-pending_docs,.badge-enr-pending_docs,.badge-doc-pending,.badge-prog-available{color:#1a4fb8;background:#e3edff}.badge-engaged,.badge-negotiating,.badge-in_progress,.badge-docs_approved,.badge-enr-docs_approved,.badge-prog-in_progress,.badge-prog-awaiting_assessment,.badge-prog-awaiting_admin,.badge-coming_soon,.badge-sig-sent,.badge-sig-pending{color:#92610a;background:#fef3dc}.badge-sig-signed{background:var(--mint-soft);color:var(--teal-strong)}.badge-sig-refused,.badge-sig-expired,.badge-sig-error,.badge-archived,.badge-lost,.badge-cancelled,.badge-enr-cancelled,.badge-doc-rejected,.badge-overdue{background:var(--color-danger-soft);color:#93000a}.badge-draft,.badge-unlisted,.badge-prog-locked{color:#4c5566;background:#eceef3}.admin-shell{height:100vh;min-height:0;display:flex;overflow:hidden}.admin-main{flex:1;min-width:0;height:100vh;padding:2.2rem 2.5rem;overflow-y:auto}.admin-main>*{max-width:1280px}.sidebar{color:#e6efec;background:radial-gradient(120% 60% at 50% 0,#fee17a0f,#0000 60%),linear-gradient(#063f37 0%,#032a25 55%,#02211d 100%);border-right:1px solid #ffffff0f;flex-direction:column;flex:0 0 262px;gap:.3rem;width:262px;height:100vh;min-height:0;padding:1.5rem .9rem 1.2rem;display:flex;overflow:hidden}.sidebar .brand{text-align:center;background:#f6f8f7;border-radius:.9rem;padding:.85rem .9rem .7rem;box-shadow:0 2px 10px #0000002e}.sidebar .brand img{margin:0 auto}.sidebar .brand small{letter-spacing:.14em;color:var(--color-text-muted);margin-top:.35rem;font-family:Inter,sans-serif;font-size:.6rem;font-weight:700;display:block}.sidebar nav{scrollbar-width:thin;flex-direction:column;gap:.95rem;min-height:0;margin-top:1.35rem;padding-right:.2rem;display:flex;overflow-y:auto}.nav-section{flex-direction:column;gap:.15rem;display:flex}.nav-section-label{letter-spacing:.12em;text-transform:uppercase;color:#e6efec6b;padding:0 .85rem .25rem 1rem;font-size:.62rem;font-weight:800}.nav-item{color:#e6efecad;border-radius:.6rem;align-items:center;gap:.75rem;min-height:42px;padding:.66rem .9rem .66rem 1rem;font-size:1rem;font-weight:600;line-height:1.15;text-decoration:none;transition:background .14s,color .14s;display:flex;position:relative}.nav-item svg{opacity:.72;flex-shrink:0;transition:opacity .14s}.nav-item:hover{color:#f3f8f6;background:#ffffff0d}.nav-item:hover svg{opacity:1}.nav-item.active{color:#fff;background:#89f6de1a;font-weight:600}.nav-item.active:before{content:"";background:var(--mint);border-radius:3px;width:3px;height:1.05rem;position:absolute;top:50%;left:.28rem;transform:translateY(-50%)}.nav-item.active svg{opacity:1;color:var(--mint)}.sidebar .muted{color:#e6efec99!important}.sidebar strong{color:#fff!important}.sidebar-footer{border-top:1px solid #ffffff1a;margin-top:auto;padding-top:1rem}.sidebar button.secondary{color:#fff;box-shadow:none;background:#ffffff14;border:1px solid #ffffff29}.sidebar button.secondary:hover:not(:disabled){background:#ffffff24;border-color:#ffffff3d}.modoro-credit{color:var(--color-text-muted);align-items:center;gap:.45rem;font-size:.72rem;font-weight:600;display:inline-flex}.modoro-credit img{width:auto;height:20px;display:block}.modoro-credit-sidebar{color:#e6efec8a;margin-top:.9rem}.modoro-credit-sidebar:hover{color:#fff}.modoro-credit-sidebar img{filter:invert()brightness(1.9);opacity:.72}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page{animation:.28s ease-out fadeInUp}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:3px solid var(--color-surface-container);border-top-color:var(--teal);border-radius:50%;width:22px;height:22px;margin:2rem auto;animation:.7s linear infinite spin}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg, var(--color-surface-container) 25%, var(--color-surface-low) 50%, var(--color-surface-container) 75%);background-size:200% 100%;animation:1.4s infinite shimmer}.error{color:var(--color-danger);border:1px solid var(--color-danger-soft);border-radius:var(--radius);background:#fff5f4;padding:.6rem .9rem;font-size:.9rem}.muted{color:var(--color-text-muted)}.stat-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);font-size:.72rem;font-weight:700}.stat-value{font-family:Montserrat,sans-serif;font-size:1.6rem;font-weight:800}.avatar{color:#fff;background:linear-gradient(135deg, var(--teal), var(--gold));letter-spacing:.02em;border-radius:50%;flex-shrink:0;place-items:center;width:64px;height:64px;font-family:Montserrat,sans-serif;font-size:1.4rem;font-weight:800;display:grid}.progress-track{background:var(--color-surface-container);border-radius:999px;height:6px;overflow:hidden}.progress-fill{background:var(--teal);border-radius:999px;height:100%;transition:width .5s}.chat-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);height:calc(100vh - 120px);max-height:800px;box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.chat-header{background:var(--color-surface-low);border-bottom:1px solid var(--color-border);align-items:center;gap:.8rem;padding:1rem 1.2rem;display:flex}.chat-messages{background:var(--color-bg);flex-direction:column;flex:1;gap:.6rem;padding:1.2rem;display:flex;overflow-y:auto}.chat-bubble{border-radius:var(--radius-lg);max-width:75%;padding:.7rem 1rem;animation:.2s ease-out fadeInUp;position:relative}.chat-bubble-mine{background:var(--teal);color:#fff;border-bottom-right-radius:var(--radius-sm);align-self:flex-end}.chat-bubble-other{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-bottom-left-radius:var(--radius-sm);align-self:flex-start}.chat-sender{text-transform:uppercase;letter-spacing:.05em;color:var(--gold);margin-bottom:.2rem;font-size:.7rem;font-weight:700;display:block}.chat-body{white-space:pre-wrap;word-break:break-word;margin:0;font-size:.92rem;line-height:1.5}.chat-time{opacity:.7;text-align:right;margin-top:.3rem;font-size:.68rem;display:block}.chat-bubble-mine .chat-time{color:#ffffffb3}.chat-input-area{border-top:1px solid var(--color-border);background:var(--color-surface);gap:.6rem;padding:.8rem 1.2rem;display:flex}.chat-input-area textarea{min-height:2.4rem;max-height:6rem}.chat-closed-banner{text-align:center;background:var(--color-surface-low);border-top:1px solid var(--color-border);color:var(--color-text-muted);padding:.9rem;font-size:.88rem;font-weight:500}.chat-empty{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.5rem;display:flex}.chat-empty-icon{opacity:.5;font-size:2.5rem}.chat-avatar{color:#fff;background:linear-gradient(135deg, var(--teal), var(--gold));border-radius:50%;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:1rem;font-weight:700;display:grid}@keyframes toast-slide-up{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.4rem;display:flex}.page-head h1{margin-bottom:.15rem}.page-head p{margin:0}.module-section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.95rem;display:flex}.module-section-head h2,.module-section-head p{margin:0}.module-section-head p{margin-top:.25rem;font-size:.9rem}.module-create-card{border-color:var(--teal-tint-strong);margin-top:1.2rem}.module-create-head{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.9rem;padding-bottom:.9rem;display:flex}.module-create-head h3,.module-create-head p{margin:0}.module-create-head p{margin-top:.25rem;font-size:.86rem}.lesson-create-card{background:var(--color-surface-low,#f4f6fb);border-color:var(--teal-tint-strong);margin-top:.75rem;padding:.8rem}.lesson-create-head{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.7rem;padding-bottom:.7rem;display:flex}.lesson-create-head h4,.lesson-create-head p{margin:0}.lesson-create-head p{margin-top:.2rem;font-size:.82rem}.toolbar{flex-wrap:wrap;align-items:center;gap:.7rem;margin-bottom:1.1rem;display:flex}.search-input{flex:1;min-width:220px;max-width:380px;position:relative}.search-input input{padding-left:2.3rem}.search-input svg{color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;left:.8rem;transform:translateY(-50%)}.filter-chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;box-shadow:none;border-radius:999px;padding:.42rem .9rem;font-size:.85rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}.chip:hover:not(:disabled){background:var(--color-surface-low);filter:none;box-shadow:none;transform:none}.chip.active{background:var(--teal-tint);border-color:var(--teal);color:var(--teal-strong)}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:60;background:#09161473;place-items:center;padding:1.5rem;animation:.15s ease-out fade-in;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:620px;max-height:88vh;animation:.2s cubic-bezier(.2,.8,.3,1) modal-in;overflow-y:auto}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-head{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.4rem 1.6rem 1rem;display:flex}.modal-head h2{margin:0 0 .15rem}.modal-head p{margin:0;font-size:.88rem}.modal-close{color:var(--color-text-muted);box-shadow:none;background:0 0;border:none;border-radius:.5rem;padding:.3rem;line-height:0}.modal-close:hover:not(:disabled){background:var(--color-surface-low);color:var(--color-text);filter:none;box-shadow:none;transform:none}.modal-body{padding:1.4rem 1.6rem}.modal-foot{border-top:1px solid var(--color-border);justify-content:flex-end;gap:.7rem;padding:1rem 1.6rem 1.4rem;display:flex}.course-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.1rem;display:grid}.course-tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;transition:box-shadow .2s,transform .2s,border-color .2s;display:flex;overflow:hidden}.course-tile:hover{box-shadow:var(--shadow);border-color:var(--teal-tint-strong);transform:translateY(-3px)}.course-tile-cover{background:linear-gradient(135deg, var(--teal) 0%, #0d6a5c 60%, var(--gold) 160%);background-position:50%;background-size:cover;place-items:center;height:132px;display:grid;position:relative}.course-tile-cover .cover-initial{color:#ffffff80;font-family:Montserrat,sans-serif;font-size:2.6rem;font-weight:800}.course-tile-cover .badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);position:absolute;top:.7rem;left:.7rem}.home-visibility{letter-spacing:.04em;text-transform:uppercase;color:#fff;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0000006b;border-radius:999px;max-width:calc(100% - 1.4rem);padding:.28rem .65rem;font-size:.68rem;font-weight:800;position:absolute;bottom:.7rem;right:.7rem}.home-visibility.on{background:#006b5ce0}.home-visibility.off{background:#121c2a94}.course-tile-body{flex-direction:column;flex:1;gap:.5rem;padding:1rem 1.1rem 1.1rem;display:flex}.course-tile-body h3{margin:0;font-size:1rem;line-height:1.35}.course-tile-meta{color:var(--color-text-muted);flex-wrap:wrap;gap:.35rem .8rem;font-size:.8rem;display:flex}.course-tile-price{color:var(--teal);font-family:Montserrat,sans-serif;font-size:1.1rem;font-weight:800}.course-tile-actions{border-top:1px solid var(--color-border);background:var(--color-surface-low);grid-template-columns:1fr 1fr auto;gap:.5rem;padding:.85rem 1.1rem;display:grid}.course-tile-actions button,.course-tile-actions .btn{text-align:center;white-space:normal;min-width:0;padding:.45rem .7rem;font-size:.85rem}.course-tile-actions .course-publish-action{grid-column:1/-1;min-height:2.45rem}.course-tile-actions .icon-button{width:38px;min-width:38px;padding:.45rem}.tabs{scrollbar-width:none;border-bottom:1px solid var(--color-border);flex-wrap:nowrap;gap:.25rem;margin-bottom:1.4rem;padding-bottom:0;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;color:var(--color-text-muted);box-shadow:none;text-align:left;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:.6rem .6rem 0 0;align-items:center;gap:.6rem;padding:.7rem 1rem .75rem;transition:background .15s,color .15s,border-color .15s;display:flex}.tab:hover:not(:disabled){background:var(--color-surface-low);color:var(--color-text);filter:none;box-shadow:none;transform:none}.tab.active{color:var(--teal-strong);border-bottom-color:var(--teal);background:0 0}.tab-text{flex-direction:column;line-height:1.25;display:flex}.tab-text strong{font-size:.94rem;font-weight:600}.tab.active .tab-text strong{font-weight:700}.tab-text small{color:var(--color-text-muted);font-size:.74rem}.tab-check{border:2px dashed var(--color-border);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:20px;height:20px;display:grid}.tab-check.done{background:var(--teal);border:2px solid var(--teal)}.tpl-layout{grid-template-columns:240px 1fr;align-items:start;gap:1.2rem;display:grid}@media (width<=900px){.tpl-layout{grid-template-columns:1fr}}.tpl-list{flex-direction:column;gap:.35rem;display:flex}.tpl-item{text-align:left;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);box-shadow:none;border-radius:.65rem;justify-content:space-between;align-items:center;gap:.5rem;padding:.7rem .85rem;font-size:.9rem;font-weight:500;transition:background .15s,border-color .15s;display:flex}.tpl-item:hover:not(:disabled){background:var(--color-surface-low);filter:none;box-shadow:none;transform:none}.tpl-item.active{background:var(--teal-tint);border-color:var(--teal);color:var(--teal-strong);font-weight:700}.tpl-item-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tpl-tags{flex-wrap:wrap;gap:.35rem;display:flex}.tpl-tags .chip{padding:.3rem .6rem;font-family:ui-monospace,Menlo,monospace;font-size:.76rem}.link-button{color:var(--teal);box-shadow:none;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.link-button:hover:not(:disabled){filter:none;box-shadow:none;color:var(--teal-strong);background:0 0;transform:none}.viewer{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:min(980px,100%);height:min(88vh,900px);animation:.2s cubic-bezier(.2,.8,.3,1) modal-in;display:flex;overflow:hidden}.viewer-head{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.1rem;display:flex}.viewer-action{width:34px;height:34px;color:var(--color-text-muted);border-radius:.5rem;place-items:center;text-decoration:none;transition:background .15s,color .15s;display:inline-grid}.viewer-action:hover{background:var(--color-surface-low);color:var(--color-text)}.viewer-body{background:var(--color-surface-low);flex:1;place-items:center;display:grid;overflow:auto}.viewer-body iframe{background:#fff;border:none;width:100%;height:100%}.viewer-body img{object-fit:contain;max-width:100%;max-height:100%}.btn{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.avatar-sm{color:#fff;background:linear-gradient(135deg, var(--teal), #0f7d6b);border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;font-family:Montserrat,sans-serif;font-size:.82rem;font-weight:800;display:grid}.empty-state{text-align:center;border:1px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:3rem 1.5rem}.empty-state .empty-icon{background:var(--teal-tint);width:52px;height:52px;color:var(--teal);border-radius:50%;place-items:center;margin:0 auto .9rem;display:grid}.empty-state h3{margin:0 0 .3rem}.empty-state p{color:var(--color-text-muted);margin:0 0 1.1rem}.user-cell{align-items:center;gap:.7rem;display:flex}a.user-cell-link{color:inherit;text-decoration:none}a.user-cell-link:hover strong{color:var(--teal);text-decoration:underline}.user-cell strong{font-weight:600;line-height:1.25;display:block}.user-cell small{color:var(--color-text-muted);font-size:.8rem}.course-tags{flex-wrap:wrap;gap:.3rem;display:flex}.course-tag{background:var(--color-surface-low);border:1px solid var(--color-border);color:var(--color-text);white-space:nowrap;border-radius:999px;padding:.18rem .6rem;font-size:.76rem}.audit-card{border:1px solid var(--teal-tint-strong);background:var(--teal-tint);border-radius:var(--radius);padding:.9rem 1rem}.audit-head{color:var(--teal-strong);align-items:center;gap:.45rem;margin-bottom:.75rem;font-size:.85rem;font-weight:650;display:flex}.audit-list{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.7rem 1.2rem;margin:0;display:grid}.audit-list dt{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.15rem;font-size:.7rem}.audit-list dd{color:var(--color-text);margin:0;font-size:.85rem}.audit-list dd.mono{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.audit-note{color:var(--color-text-muted);margin:.9rem 0 0;font-size:.74rem;line-height:1.5}.audit-list .wide{grid-column:1/-1}.audit-list .wide dd{color:var(--color-text-muted);font-size:.76rem;line-height:1.5}.field-row{flex-wrap:wrap;gap:.9rem;display:flex}.field-row>.field{flex:160px;min-width:0}.form-section-label{border-top:1px solid var(--color-border);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:1.4rem 0 .2rem;padding-top:1rem;font-size:.72rem;font-weight:700}.icon-button{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;padding:.35rem;display:inline-flex}.icon-button:hover{background:var(--color-surface-container);color:var(--color-text)}.tab-count{background:var(--gold-bright);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.68rem;font-weight:700;display:inline-flex}.progress-head{flex-wrap:wrap;align-items:center;gap:1.6rem;display:flex}.progress-stats{flex-wrap:wrap;gap:2.4rem;display:flex}.progress-row{align-items:center;gap:1rem;padding:.55rem 0;display:flex}.progress-row-title{flex-direction:column;flex:0 0 240px;font-size:.88rem;display:flex}.progress-bar{background:var(--color-surface-container);border-radius:999px;flex:1;min-width:80px;height:8px;overflow:hidden}.progress-bar-fill{background:var(--teal);border-radius:999px;height:100%;transition:width .3s}.progress-percent{text-align:right;color:var(--color-text-muted);flex:0 0 42px;font-size:.82rem}@media (width<=640px){.progress-row-title{flex-basis:140px}}.shortcuts-grid{flex-wrap:wrap;gap:.75rem;margin-top:.75rem;display:flex}.shortcut-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:110px;min-height:92px;box-shadow:var(--shadow-sm);cursor:pointer;color:var(--color-text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1rem .5rem .75rem;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex}.shortcut-card:hover{box-shadow:var(--shadow);border-color:var(--teal);color:var(--color-text);transform:translateY(-3px)}.shortcut-card svg{color:var(--teal);flex-shrink:0}.shortcut-card span{color:var(--color-text-muted);font-size:.72rem;font-weight:600;line-height:1.3}.shortcut-card:hover span{color:var(--teal)}.ops-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem;margin-top:.85rem;display:grid}.ops-card{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-border);border-radius:var(--radius);min-height:92px;box-shadow:var(--shadow-sm);color:var(--color-text);align-items:center;gap:.85rem;padding:1rem;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex}.ops-card:hover{box-shadow:var(--shadow);color:var(--color-text);transform:translateY(-2px)}.ops-card.tone-teal{border-left-color:var(--teal)}.ops-card.tone-warn{border-left-color:var(--color-warning)}.ops-card.tone-danger{border-left-color:var(--color-danger)}.ops-card.tone-ok{border-left-color:var(--mint)}.ops-value{background:var(--color-surface-low);width:48px;height:48px;color:var(--teal);border-radius:999px;flex:0 0 48px;place-items:center;font-family:Montserrat,Inter,sans-serif;font-size:1.35rem;font-weight:800;display:grid}.ops-card.tone-warn .ops-value{color:var(--color-warning);background:#fff4df}.ops-card.tone-danger .ops-value{color:var(--color-danger);background:var(--color-danger-soft)}.ops-card strong,.ops-card span{display:block}.ops-card strong{font-size:.9rem}.ops-card span{color:var(--color-text-muted);margin-top:.18rem;font-size:.78rem;line-height:1.35}
