:root{--bg:#f2f3f5;--bg-deep:#e9eaec;--surface:#fff;--surface-muted:#f8f7f5;--surface-soft:#fbfbf9;--ink:#1d1d1f;--ink-2:#5b5b60;--ink-3:#77777c;--line:#e5e4e2;--line-strong:#d3d1cc;--primary:#f1ad1c;--primary-strong:#c98f0e;--primary-soft:#fef7e8;--primary-softer:#fffdf6;--success:#21785a;--success-soft:#eaf5ef;--warning:#a06822;--warning-soft:#fbf5e9;--danger:#b24444;--danger-soft:#fbefee;--radius-xl:26px;--radius-lg:20px;--radius-md:14px;--radius-sm:10px;--shadow-card:0 1px 2px #171b1609, 0 18px 44px -36px #171b1666;--shadow-float:0 32px 90px -36px #593e0047;--font-sans:"Inter", "SF Pro Text", "SF Pro Display", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono:"SFMono-Regular", "Cascadia Code", "Roboto Mono", Menlo, monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;min-width:320px}body{background:var(--bg);min-width:320px;min-height:100vh;color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.55}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}ol,ul{margin:0;padding:0;list-style:none}svg{display:block}::selection{color:var(--ink);background:#fdecc2}:focus-visible{outline-offset:2px;outline:2px solid #e0a51d}.eyebrow{color:var(--primary);letter-spacing:.155em;text-transform:uppercase;font-size:10.5px;font-weight:700;line-height:1.4}.button{height:42px;color:var(--ink);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 17px;font-size:13.5px;font-weight:620;line-height:1;transition:background .16s,border-color .16s,color .16s,box-shadow .16s,transform .16s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button:active{transform:translateY(0)}.button:disabled{opacity:.55;transform:none}.button--primary{background:var(--primary);color:#fff;box-shadow:0 10px 24px -16px #c98f0e8c}.button--primary:hover{background:var(--primary-strong);box-shadow:0 12px 26px -16px #c98f0ea6}.button--tonal{background:var(--primary-soft);color:var(--primary-strong)}.button--tonal:hover{background:#fdecc2}.button--ghost{border-color:var(--line);background:var(--surface);color:var(--ink-2)}.button--ghost:hover{border-color:var(--line-strong);background:var(--surface-muted)}.button--danger{background:var(--danger);color:#fff}.button--danger:hover{background:#9e3838}.button--compact{border-radius:10px;height:34px;padding:0 12px;font-size:12.5px}.button--block{width:100%}.icon-button{border:1px solid var(--line);background:var(--surface);width:36px;height:36px;color:var(--ink-2);border-radius:10px;flex:none;place-items:center;transition:background .15s,border-color .15s,color .15s;display:inline-grid}.icon-button:hover{border-color:var(--line-strong);background:var(--surface-muted);color:var(--ink)}.icon-button--quiet{color:var(--ink-3);background:0 0;border-color:#0000}.icon-button--quiet:hover{background:var(--surface-muted);color:var(--ink);border-color:#0000}.icon-button--danger:hover{background:var(--danger-soft);color:var(--danger);border-color:#efd7d4}.text-link{color:var(--primary);white-space:nowrap;align-items:center;gap:5px;font-size:12.5px;font-weight:600;display:inline-flex}.text-link:hover{color:var(--primary-strong)}.text-link svg{transition:transform .15s}.text-link:hover svg{transform:translate(2px)}.back-link{color:var(--ink-3);align-items:center;gap:6px;margin-bottom:16px;font-size:12.5px;font-weight:500;display:inline-flex}.back-link:hover{color:var(--primary)}.panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card)}.panel__header{justify-content:space-between;align-items:flex-start;gap:18px;padding:21px 22px 15px;display:flex}.panel__header h2{letter-spacing:-.015em;font-size:16px;font-weight:680}.panel__header p{color:var(--ink-3);margin-top:4px;font-size:12px}.progress-line{background:#eef0e9;border-radius:999px;width:100%;height:6px;overflow:hidden}.progress-line>span{border-radius:inherit;background:var(--primary);height:100%;transition:width .45s cubic-bezier(.22,1,.36,1),background .25s;display:block}.progress-line>span.is-complete{background:var(--success)}.progress-line--slim{height:5px}.status-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;height:24px;padding:0 9px;font-size:10.5px;font-weight:600;line-height:1;display:inline-flex}.status-badge__dot{background:currentColor;border-radius:50%;width:5px;height:5px}.status-badge--active{background:var(--primary-soft);color:var(--primary-strong)}.status-badge--complete{background:var(--success-soft);color:var(--success)}.status-badge--empty{color:var(--ink-3);background:#f1f2ee}.completion-badge{background:var(--success-soft);color:var(--success);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:4px 8px;font-size:10.5px;font-weight:650;line-height:1;display:inline-flex}.live-label{color:var(--success);letter-spacing:.12em;align-items:center;gap:6px;font-size:9px;font-weight:700;display:inline-flex}.live-label>span{background:var(--success);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #21785a1c}.filter-tabs{background:var(--surface-muted);border:1px solid #e6e8e1b3;border-radius:12px;align-items:center;gap:2px;padding:3px;display:inline-flex}.filter-tab{height:31px;color:var(--ink-3);white-space:nowrap;background:0 0;border:0;border-radius:9px;align-items:center;gap:6px;padding:0 11px;font-size:12px;font-weight:550;transition:background .15s,color .15s,box-shadow .15s;display:inline-flex}.filter-tab>span{min-width:17px;height:17px;color:var(--ink-3);background:#181b1a0e;border-radius:999px;place-items:center;padding:0 4px;font-size:9.5px;font-weight:650;display:inline-grid}.filter-tab:hover{color:var(--ink-2)}.filter-tab.is-active{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #171b1614}.filter-tab.is-active>span{background:var(--primary-soft);color:var(--primary)}.brand{align-items:center;gap:10px;min-width:0;display:inline-flex}.brand__mark{background:0 0;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 8px 18px -12px #c98f0e73}.brand__mark svg{width:22px;height:22px}.brand__type{flex-direction:column;gap:1px;min-width:0;display:flex}.brand__name{letter-spacing:.06em;font-size:17px;font-weight:750;line-height:1.15}.brand__sub{color:var(--ink-3);letter-spacing:.18em;font-size:8px;font-weight:650;line-height:1.2}.avatar{color:#fff;letter-spacing:.02em;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:650;line-height:1;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff29}.progress-ring{flex:none;position:relative}.progress-ring svg{overflow:visible}.progress-ring__track{opacity:1}.progress-ring__value{transition:stroke-dashoffset .65s cubic-bezier(.22,1,.36,1)}.progress-ring__label{color:var(--ink);justify-content:center;align-items:center;line-height:1;display:flex;position:absolute;inset:0}.progress-ring__label strong{letter-spacing:-.04em;align-items:baseline;gap:1px;font-size:1em;font-weight:720;line-height:1;display:inline-flex}.progress-ring__label span{color:var(--ink-3);letter-spacing:0;font-size:.42em;font-weight:600}.sync-status{border:1px solid var(--line);height:28px;color:var(--ink-3);white-space:nowrap;background:#ffffffbd;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:10.5px;font-weight:550;display:inline-flex}.sync-status__dot{background:var(--ink-3);border-radius:50%;width:6px;height:6px}.sync-status--live{color:var(--success)}.sync-status--live .sync-status__dot{background:var(--success);box-shadow:0 0 0 3px #21785a1a}.sync-status--reconnecting{color:var(--warning)}.sync-status--reconnecting .sync-status__dot{background:var(--warning);animation:1.5s infinite pulse-dot}.sync-status--connecting .sync-status__dot{background:var(--primary);animation:1.5s infinite pulse-dot}.sync-status.is-syncing .sync-status__dot{animation:.8s 2 pulse-dot}.admin-shell{min-height:100vh}.admin-rail{z-index:30;border-right:1px solid var(--line);background:#fbfcf9;flex-direction:column;width:236px;padding:27px 16px 18px;display:flex;position:fixed;inset:0 auto 0 0}.admin-rail__brand{padding:0 9px}.admin-nav{flex-direction:column;gap:4px;margin-top:37px;display:flex}.admin-nav__label{color:var(--ink-3);letter-spacing:.14em;padding:0 11px 9px;font-size:9.5px;font-weight:650}.admin-nav__item{height:43px;color:var(--ink-2);border-radius:11px;align-items:center;gap:11px;padding:0 11px;font-size:13.5px;font-weight:540;transition:background .16s,color .16s;display:flex}.admin-nav__item svg{color:var(--ink-3);transition:color .16s}.admin-nav__item:hover{background:var(--surface-muted);color:var(--ink)}.admin-nav__item.is-active{background:var(--primary-soft);color:var(--primary-strong);font-weight:630}.admin-nav__item.is-active svg{color:var(--primary)}.admin-rail__footer{flex-direction:column;gap:16px;margin-top:auto;display:flex}.rail-note{border:1px solid var(--line);background:linear-gradient(145deg,#f8faf5,#f1f4ee);border-radius:14px;gap:10px;padding:13px;display:flex}.rail-note__dot{background:var(--success);border-radius:50%;flex:none;width:7px;height:7px;margin-top:5px;box-shadow:0 0 0 4px #21785a17}.rail-note strong{font-size:11.5px;font-weight:650;display:block}.rail-note p{color:var(--ink-3);margin-top:3px;font-size:10.5px;line-height:1.55}.rail-profile{border-top:1px solid var(--line);align-items:center;gap:10px;padding:14px 8px 0;display:flex}.rail-profile__avatar{color:#fff;background:#232927;border-radius:50%;flex:none;place-items:center;width:33px;height:33px;font-size:12px;font-weight:600;display:grid}.rail-profile strong{font-size:11.5px;font-weight:620;display:block}.rail-profile div>span{color:var(--ink-3);font-size:10px}.admin-main{min-height:100vh;margin-left:236px;padding:0 40px 64px}.admin-topbar{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f5f6f2de;justify-content:space-between;align-items:center;gap:20px;width:100%;max-width:1240px;height:78px;margin:0 auto;display:flex;position:sticky;top:0}.admin-topbar__crumb{color:var(--ink-3);align-items:center;gap:8px;font-size:11.5px;display:flex}.admin-topbar__crumb i{color:var(--line-strong);font-style:normal}.admin-topbar__crumb strong{color:var(--ink-2);font-weight:550}.admin-topbar__actions{align-items:center;gap:14px;display:flex}.admin-topbar__date{color:var(--ink-3);font-size:11.5px}.admin-page{width:100%;max-width:1240px;margin:0 auto}.page-heading{justify-content:space-between;align-items:flex-end;gap:24px;padding:8px 0 26px;display:flex}.page-heading h1{letter-spacing:-.04em;margin-top:7px;font-size:clamp(29px,3vw,36px);font-weight:720;line-height:1.18}.page-heading__sub{max-width:580px;color:var(--ink-2);margin-top:8px;font-size:13px;line-height:1.65}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:17px;display:grid}.stat-card{border:1px solid var(--line);background:var(--surface);min-height:136px;box-shadow:var(--shadow-card);border-radius:18px;flex-direction:column;padding:17px 18px 16px;display:flex}.stat-card__top{justify-content:space-between;align-items:center;gap:12px;display:flex}.stat-card__label{color:var(--ink-2);font-size:12px;font-weight:550}.stat-card__icon{background:var(--surface-muted);width:32px;height:32px;color:var(--ink-3);border-radius:9px;place-items:center;display:grid}.stat-card--primary .stat-card__icon{background:var(--primary-soft);color:var(--primary)}.stat-card--success .stat-card__icon{background:var(--success-soft);color:var(--success)}.stat-card__value{letter-spacing:-.045em;margin-top:10px;font-size:32px;font-weight:720;line-height:1.1}.stat-card__value span{color:var(--ink-3);letter-spacing:0;margin-left:2px;font-size:13px;font-weight:550}.stat-card__note{color:var(--ink-3);margin-top:auto;padding-top:10px;font-size:10.5px;line-height:1.45}.dashboard-grid{grid-template-columns:minmax(0,1.68fr) minmax(300px,.82fr);align-items:start;gap:15px;display:grid}.panel--students{min-width:0;overflow:hidden}.panel--students .panel__header{padding-bottom:14px}.panel--activity .panel__header{padding-bottom:8px}.panel--activity .activity-feed,.panel--activity .activity-empty{padding:0 22px 18px}.student-table{width:100%}.student-table__head,.student-row{grid-template-columns:minmax(160px,1.55fr) minmax(128px,1.2fr) 52px minmax(118px,1fr) 94px 14px;align-items:center;gap:10px;display:grid}.student-table__head{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink-3);letter-spacing:.03em;background:#fcfcfa;padding:9px 22px;font-size:9.5px;font-weight:550}.student-row{border-bottom:1px solid #e6e8e1c7;padding:12px 22px;transition:background .14s}.student-row:last-child{border-bottom:0}.student-row:hover{background:#fafbf7}.student-row__identity{align-items:center;gap:10px;min-width:0;display:flex}.student-row__name,.student-row__school{flex-direction:column;gap:2px;min-width:0;display:flex}.student-row__name strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;overflow:hidden}.student-row__name span,.student-row__school span{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.student-row__school strong{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:500;overflow:hidden}.student-row__courses{align-items:baseline;gap:3px;display:flex}.student-row__courses strong{font-size:13px;font-weight:650}.student-row__courses span{color:var(--ink-3);font-size:9.5px}.student-row__progress{flex-direction:column;gap:5px;min-width:0;display:flex}.student-row__progress-label{justify-content:space-between;align-items:center;gap:8px;display:flex}.student-row__progress-label strong{color:var(--primary);font-size:10.5px;font-weight:650}.student-row__progress-label span{color:var(--ink-3);font-size:9.5px}.student-row__status{justify-self:start}.student-row__chevron{color:#b3b8b2;transition:transform .15s,color .15s}.student-row:hover .student-row__chevron{color:var(--primary);transform:translate(2px)}.student-table__count{border-top:1px solid var(--line);color:var(--ink-3);padding:11px 22px;font-size:10.5px}.activity-feed{position:relative}.activity-item{grid-template-columns:32px minmax(0,1fr);gap:11px;padding:9px 0;display:grid;position:relative}.activity-item:not(:last-child):before{background:var(--line);content:"";width:1px;position:absolute;top:41px;bottom:-9px;left:15.5px}.activity-item__icon{z-index:1;background:var(--primary-softer);width:32px;height:32px;color:var(--primary);border:1px solid #f0e3c4;border-radius:9px;place-items:center;display:grid;position:relative}.activity-item__icon.is-reopened{background:var(--warning-soft);color:var(--warning);border-color:#efe3cb}.activity-item__body{min-width:0;padding-top:1px}.activity-item__body a{color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11.5px;line-height:1.55;transition:color .14s;display:-webkit-box;overflow:hidden}.activity-item__body a:hover{color:var(--primary)}.activity-item__body time{color:var(--ink-3);margin-top:3px;font-size:9.5px;display:block}.activity-empty{padding:18px 2px 24px}.activity-empty p{color:var(--ink-2);font-size:12px;font-weight:600}.activity-empty span{color:var(--ink-3);margin-top:4px;font-size:10.5px;display:block}.students-panel{overflow:hidden}.students-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:17px 22px;display:flex}.search-field{border:1px solid var(--line);background:var(--surface);width:250px;height:37px;color:var(--ink-3);border-radius:999px;align-items:center;gap:8px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.search-field:focus-within{box-shadow:0 0 0 3px var(--primary-soft);border-color:#e9d3a0}.search-field input{background:0 0;border:0;outline:0;width:100%;min-width:0;font-size:12px}.search-field input::placeholder{color:#a2a7a1}.search-field>button{background:var(--surface-muted);width:20px;height:20px;color:var(--ink-3);border:0;border-radius:50%;flex:none;place-items:center;display:grid}.students-panel .empty-state{padding:54px 24px}.student-hero{border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-card);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:28px;padding:24px 26px;display:grid}.student-hero__identity{align-items:center;gap:16px;min-width:0;display:flex}.student-hero__copy{min-width:0}.student-hero__name-row{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.student-hero__name-row h1{letter-spacing:-.035em;font-size:26px;font-weight:720;line-height:1.2}.student-hero__meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:11.5px;display:flex}.student-hero__meta i{color:var(--line-strong);font-style:normal}.student-hero__contact{color:var(--ink-3);margin-top:4px;font-size:10.5px}.student-hero__progress{border-left:1px solid var(--line);align-items:center;gap:15px;padding-left:28px;display:flex}.student-hero__progress-label{color:var(--ink-3);font-size:10px;font-weight:550;display:block}.student-hero__progress strong{letter-spacing:-.03em;margin-top:3px;font-size:21px;font-weight:700;line-height:1.2;display:block}.student-hero__progress strong i{color:var(--ink-3);letter-spacing:0;font-size:11px;font-style:normal;font-weight:500}.student-hero__progress-note{color:var(--ink-3);white-space:nowrap;margin-top:4px;font-size:9.5px;display:block}.student-hero__actions{align-items:center;gap:7px;display:flex}.share-card{border:1px solid var(--line);background:var(--surface);border-radius:17px;align-items:center;gap:13px;margin-top:13px;padding:13px 17px;display:flex}.share-card__icon{background:var(--primary-soft);width:36px;height:36px;color:var(--primary);border-radius:10px;flex:none;place-items:center;display:grid}.share-card__content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.share-card__content>span{color:var(--ink-3);font-size:9.5px}.share-card__content code{color:var(--ink-2);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.share-card__code{background:var(--surface-muted);color:var(--ink-3);font-family:var(--font-mono);white-space:nowrap;border-radius:7px;padding:5px 9px;font-size:9.5px}.share-card__actions{align-items:center;gap:7px;display:flex}.teacher-note{background:var(--warning-soft);color:var(--warning);border:1px solid #eee3c9;border-radius:15px;gap:11px;margin-top:13px;padding:13px 17px;display:flex}.teacher-note>svg{flex:none;margin-top:1px}.teacher-note strong{font-size:10px;font-weight:650;display:block}.teacher-note p{color:#74664f;margin-top:2px;font-size:11.5px;line-height:1.6}.section-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin:34px 0 15px;display:flex}.section-heading h2{letter-spacing:-.025em;margin-top:5px;font-size:21px;font-weight:700}.section-heading p:not(.eyebrow){color:var(--ink-3);margin-top:5px;font-size:11.5px}.course-list{flex-direction:column;gap:14px;display:flex}.course-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card);padding:20px 22px 15px;transition:border-color .2s}.course-card.is-complete{border-color:#d7e9df}.course-card__header{grid-template-columns:minmax(0,1fr) 210px auto;align-items:start;gap:24px;display:grid}.course-card__title{min-width:0}.course-card__name-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.course-card__name-row h3{letter-spacing:-.02em;font-size:17px;font-weight:680;line-height:1.35}.course-card__meta{flex-wrap:wrap;gap:6px;margin-top:7px;display:flex}.course-card__meta span{background:var(--surface-muted);color:var(--ink-3);border-radius:6px;padding:3px 7px;font-size:9.5px;line-height:1.35}.course-card__summary-label{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.course-card__summary-label strong{letter-spacing:-.03em;font-size:17px;font-weight:700}.course-card__summary-label span{color:var(--ink-3);font-size:9.5px}.course-card__actions{gap:4px;display:flex}.requirement-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:16px;display:grid}.requirement-tile{border:1px solid var(--line);background:var(--surface-soft);text-align:left;border-radius:13px;align-items:center;gap:10px;min-width:0;min-height:70px;padding:10px 11px;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;display:flex}.requirement-tile:hover:not(:disabled){background:var(--surface);border-color:#cbd4e9;transform:translateY(-1px);box-shadow:0 8px 22px -19px #171b1666}.requirement-tile.is-done{background:#f5faf7;border-color:#dcebe3}.requirement-tile.is-done:hover:not(:disabled){background:#f7fbf8;border-color:#c4dfd1}.requirement-tile.is-busy{opacity:.72}.requirement-tile__glyph{border:1px solid var(--line);background:var(--surface);width:34px;height:34px;color:var(--ink-3);border-radius:9px;flex:none;place-items:center;transition:color .15s,border-color .15s;display:grid}.requirement-tile.is-done .requirement-tile__glyph{color:var(--success);border-color:#d9ebe1}.requirement-tile__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.requirement-tile__body strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:620;overflow:hidden}.requirement-tile__body span{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;line-height:1.4;overflow:hidden}.requirement-tile.is-done .requirement-tile__body span{color:#6d927f}.requirement-tile__check{border:1.5px solid var(--line-strong);background:var(--surface);color:#fff;border-radius:50%;flex:none;place-items:center;width:21px;height:21px;transition:background .16s,border-color .16s,color .16s;display:grid}.requirement-tile.is-done .requirement-tile__check{border-color:var(--success);background:var(--success)}.course-card__footer{color:var(--ink-3);border-top:1px solid #e6e8e1bf;justify-content:space-between;align-items:center;gap:14px;margin-top:13px;padding-top:12px;font-size:10px;display:flex}.course-card__hint{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.course-card__hint:before{background:var(--success);content:"";border-radius:50%;width:5px;height:5px}.all-done-banner{background:var(--success-soft);color:var(--success);border:1px solid #d9e9e0;border-radius:13px;align-items:center;gap:9px;margin-top:14px;padding:12px 16px;font-size:11.5px;font-weight:550;display:flex}.detail-created-at{color:var(--ink-3);text-align:center;margin-top:26px;font-size:9.5px}.entry-page{background:radial-gradient(65rem 36rem at 88% -10%, #f1ad1c1f, transparent 62%), radial-gradient(54rem 32rem at -8% 95%, #21785a12, transparent 65%), var(--bg);flex-direction:column;min-height:100vh;display:flex}.entry-header{justify-content:space-between;align-items:center;gap:20px;width:100%;max-width:1200px;margin:0 auto;padding:25px 36px;display:flex}.entry-header__right{align-items:center;gap:16px;display:flex}.entry-header__portal{border:1px solid var(--line);color:var(--ink-3);letter-spacing:.03em;background:#fff9;border-radius:999px;padding:5px 9px;font-size:9.5px}.entry-header__admin{color:var(--ink-3);align-items:center;gap:4px;font-size:11.5px;display:inline-flex}.entry-header__admin:hover{color:var(--primary)}.entry-main{flex:1;grid-template-columns:minmax(0,1.12fr) minmax(370px,.88fr);align-items:center;gap:clamp(48px,7vw,96px);width:100%;max-width:1120px;margin:0 auto;padding:34px 36px 72px;display:grid}.entry-copy h1{letter-spacing:-.055em;margin-top:15px;font-size:clamp(38px,4.5vw,60px);font-weight:730;line-height:1.12}.entry-copy h1 span{color:var(--primary)}.entry-dimensions{flex-wrap:wrap;gap:7px;margin-top:26px;display:flex}.entry-dimensions>span{border:1px solid var(--line);color:var(--ink-2);background:#ffffff9e;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:10.5px;display:inline-flex}.entry-dimensions svg{color:var(--ink-3)}.entry-quote{border-top:1px solid var(--line);align-items:flex-start;gap:9px;max-width:460px;margin-top:34px;padding-top:22px;display:flex}.entry-quote>span{height:25px;color:var(--primary);font-family:Georgia,serif;font-size:38px;line-height:.8}.entry-quote p{color:var(--ink-3);font-size:11.5px;line-height:1.65}.entry-card{border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-float);padding:31px}.entry-card__icon{background:var(--primary-soft);width:48px;height:48px;color:var(--primary);border-radius:14px;place-items:center;display:grid}.entry-card__sub{color:var(--ink-3);margin-top:6px;font-size:12px;line-height:1.6}.entry-form .button{margin-top:13px}.entry-card__hint{color:var(--ink-3);text-align:center;margin-top:13px;font-size:10.5px;line-height:1.6}.portal-page{background:#f5f6f2;min-height:100vh}.portal-header{z-index:30;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f7f8f4db;border-bottom:1px solid #e6e8e1cc;position:sticky;top:0}.portal-header__inner{justify-content:space-between;align-items:center;gap:18px;width:100%;max-width:1120px;height:68px;margin:0 auto;padding:0 32px;display:flex}.portal-header__brand{align-items:center;gap:11px;display:flex}.portal-badge{background:var(--primary-soft);color:var(--primary);letter-spacing:.03em;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:600}.portal-header__actions{align-items:center;gap:13px;display:flex}.portal-header__divider{background:var(--line);width:1px;height:16px}.portal-user{color:var(--ink-2);align-items:center;gap:7px;font-size:11.5px;font-weight:550;display:flex}.portal-switch{color:var(--ink-3);align-items:center;gap:4px;font-size:10.5px;display:inline-flex}.portal-switch:hover{color:var(--primary)}.portal-main{width:100%;max-width:1040px;margin:0 auto;padding:34px 32px 64px}.portal-hero{border:1px solid var(--line);background:radial-gradient(28rem 18rem at 100% 0%, #f1ad1c17, transparent 60%), var(--surface);box-shadow:var(--shadow-card);border-radius:28px;justify-content:space-between;align-items:center;gap:44px;padding:37px 40px;display:flex;position:relative;overflow:hidden}.portal-hero:after{content:"";pointer-events:none;border:1px solid #f1ad1c2e;border-radius:50%;width:210px;height:210px;position:absolute;top:-70px;right:-55px}.portal-hero__copy{z-index:1;min-width:0;max-width:590px;position:relative}.portal-kicker{color:var(--primary);letter-spacing:.03em;align-items:center;gap:7px;font-size:10.5px;font-weight:600;display:flex}.portal-kicker__dot{background:var(--primary);border-radius:50%;width:6px;height:6px}.portal-hero h1{letter-spacing:-.05em;margin-top:12px;font-size:clamp(31px,3.6vw,43px);font-weight:730;line-height:1.18}.portal-hero__intro{max-width:520px;color:var(--ink-2);margin-top:12px;font-size:12.5px;line-height:1.78}.portal-meta{color:var(--ink-3);flex-wrap:wrap;gap:7px 14px;margin-top:18px;font-size:10.5px;display:flex}.portal-meta span{position:relative}.portal-meta span:not(:last-child):after{background:var(--line-strong);content:"";border-radius:50%;width:2px;height:2px;position:absolute;top:50%;right:-8px}.portal-summary{z-index:1;border-left:1px solid var(--line);flex:none;align-items:center;gap:18px;padding-left:38px;display:flex;position:relative}.portal-summary__copy{flex-direction:column;display:flex}.portal-summary__label{color:var(--ink-3);font-size:10px}.portal-summary__copy strong{letter-spacing:-.035em;margin-top:5px;font-size:25px;font-weight:720;line-height:1.2}.portal-summary__copy strong i{color:var(--ink-3);letter-spacing:0;font-size:11.5px;font-style:normal;font-weight:500}.portal-summary__note{max-width:160px;color:var(--ink-3);margin-top:5px;font-size:9.5px;line-height:1.55}.portal-section-heading{justify-content:space-between;align-items:flex-end;gap:18px;margin:37px 0 17px;display:flex}.portal-section-heading p{color:var(--ink-3);margin-top:4px;font-size:10.5px}.portal-course-list{flex-direction:column;gap:14px;display:flex}.student-course{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-card);border-radius:22px;padding:24px 26px 15px;transition:border-color .2s}.student-course.is-complete{border-color:#d8e9df}.student-course__header{grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:15px;display:grid}.student-course__index{background:var(--primary-soft);width:38px;height:38px;color:var(--primary);font-family:var(--font-mono);border-radius:10px;place-items:center;font-size:10px;font-weight:600;display:grid}.student-course.is-complete .student-course__index{background:var(--success-soft);color:var(--success)}.student-course__title{min-width:0}.student-course__name-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.student-course__name-row h3{letter-spacing:-.025em;font-size:19px;font-weight:680;line-height:1.35}.student-course__meta{flex-wrap:wrap;gap:7px;margin-top:5px;display:flex}.student-course__meta span{color:var(--ink-3);font-size:9.5px}.student-course__meta span:not(:last-child):after{background:var(--line-strong);vertical-align:middle;content:"";border-radius:50%;width:2px;height:2px;margin-left:7px;display:inline-block}.student-course__number{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.student-course__number strong{letter-spacing:-.04em;font-size:23px;font-weight:710;line-height:1.15}.student-course__number span{color:var(--ink-3);font-size:9.5px}.student-requirement-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.student-requirement{border:1px solid var(--line);background:var(--surface-soft);border-radius:13px;align-items:center;gap:9px;min-width:0;padding:10px 11px;display:flex}.student-requirement.is-done{background:#f5faf7;border-color:#dbece3}.student-requirement.is-next{background:var(--primary-softer);border-color:#c9d5f5}.student-requirement__icon{border:1px solid var(--line);background:var(--surface);width:32px;height:32px;color:var(--ink-3);border-radius:9px;flex:none;place-items:center;display:grid}.student-requirement.is-done .student-requirement__icon{color:var(--success);border-color:#d9ebe1}.student-requirement.is-next .student-requirement__icon{color:var(--primary);border-color:#f0e3c4}.student-requirement__copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.student-requirement__copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:600;overflow:hidden}.student-requirement__copy span{color:var(--ink-3);white-space:nowrap;font-size:9px}.student-requirement.is-done .student-requirement__copy span{color:#6d927f}.student-requirement.is-next .student-requirement__copy span{color:var(--primary);font-weight:550}.student-requirement__mark{border-radius:50%;flex:none;place-items:center;width:20px;height:20px;display:grid}.student-requirement.is-done .student-requirement__mark{background:var(--success);color:#fff}.student-requirement__empty-mark{border:1.5px solid var(--line-strong);background:var(--surface);border-radius:50%;width:17px;height:17px;display:block}.student-requirement.is-next .student-requirement__empty-mark{border-color:#e9d3a0}.student-course__footer{color:var(--ink-3);border-top:1px solid #e6e8e1bf;justify-content:space-between;align-items:center;gap:14px;margin-top:14px;padding-top:12px;font-size:9.5px;display:flex}.student-course__footer span{align-items:center;gap:5px;display:inline-flex}.student-course__footer span.is-complete{color:var(--success);font-weight:550}.portal-note{border:1px solid var(--line);color:var(--ink-3);background:#fff9;border-radius:14px;align-items:flex-start;gap:10px;margin-top:21px;padding:13px 16px;display:flex}.portal-note svg{color:var(--primary);flex:none;margin-top:1px}.portal-note p{font-size:10.5px;line-height:1.65}.portal-sync-line{color:var(--ink-3);justify-content:center;align-items:center;gap:6px;margin-top:20px;font-size:9.5px;display:flex}.portal-sync-line__dot{background:var(--success);border-radius:50%;width:5px;height:5px}.portal-footer{border-top:1px solid var(--line);width:100%;max-width:1040px;color:var(--ink-3);justify-content:space-between;align-items:center;gap:20px;margin:0 auto;padding:22px 32px 34px;font-size:9.5px;display:flex}.portal-footer .brand__mark{width:25px;height:25px;box-shadow:none;background:0 0;border-radius:50%}.portal-footer .brand__mark svg{width:17px;height:17px}.portal-error-card{max-width:520px;margin:58px auto}.portal-error-card h1{letter-spacing:-.025em;font-size:21px;font-weight:700}.portal-error-card__actions{flex-wrap:wrap;justify-content:center;gap:9px;display:flex}.modal-layer{z-index:500;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-layer__scrim{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#171b1973;border:0;animation:.18s both fade-in;position:absolute;inset:0}.modal{background:var(--surface);border:1px solid #ffffff80;border-radius:24px;flex-direction:column;width:min(100%,570px);max-height:calc(100vh - 48px);animation:.22s cubic-bezier(.22,1,.36,1) both modal-in;display:flex;position:relative;overflow:hidden;box-shadow:0 40px 110px -30px #1016146b}.modal--sm{width:min(100%,445px)}.modal--lg{width:min(100%,780px)}.modal__header{justify-content:space-between;align-items:flex-start;gap:20px;padding:24px 25px 0;display:flex}.modal__header h2{letter-spacing:-.03em;font-size:20px;font-weight:700;line-height:1.3}.modal__header p{max-width:430px;color:var(--ink-3);margin-top:5px;font-size:11.5px;line-height:1.6}.modal__body{padding:20px 25px 22px;overflow-y:auto}.modal__footer{border-top:1px solid var(--line);background:#fcfcfa;justify-content:flex-end;align-items:center;gap:9px;padding:15px 25px;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;display:grid}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field--full{grid-column:1/-1}.field__label{color:var(--ink-2);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}.field__label em{background:var(--primary-soft);color:var(--primary);border-radius:4px;padding:1px 5px;font-size:8.5px;font-style:normal;font-weight:550}.input{border:1px solid var(--line);background:var(--surface);width:100%;height:43px;color:var(--ink);border-radius:10px;outline:0;padding:0 12px;font-size:12.5px;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:#9fa49e}.input:hover{border-color:var(--line-strong)}.input:focus{box-shadow:0 0 0 3px var(--primary-soft);border-color:#e9d3a0}.textarea{resize:vertical;height:auto;min-height:86px;padding-top:10px;padding-bottom:10px;line-height:1.55}.input--large{height:51px;padding:0 14px;font-size:14.5px}.form-error{background:var(--danger-soft);color:var(--danger);border-radius:8px;margin:-3px 0 0;padding:8px 10px;font-size:10.5px;line-height:1.5}.confirm-copy{align-items:flex-start;gap:11px;display:flex}.confirm-copy__icon{background:var(--danger-soft);width:37px;height:37px;color:var(--danger);border-radius:10px;flex:none;place-items:center;display:grid}.confirm-copy p{color:var(--ink-2);padding-top:1px;font-size:11.5px;line-height:1.7}.toast-viewport{z-index:1000;pointer-events:none;flex-direction:column;gap:8px;max-width:min(390px,100vw - 32px);display:flex;position:fixed;bottom:24px;right:24px}.toast{color:#f7f8f5;pointer-events:auto;background:#202523;border:1px solid #ffffff12;border-radius:12px;align-items:center;gap:9px;padding:11px 11px 11px 13px;font-size:11.5px;line-height:1.5;animation:.22s cubic-bezier(.22,1,.36,1) both toast-in;display:flex;box-shadow:0 18px 44px -22px #0e1210a6}.toast>svg{color:#91d8b7;flex:none}.toast--error>svg{color:#f2a8a0}.toast--info>svg{color:#e5b64a}.toast__close{color:#ffffff7a;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;width:23px;height:23px;margin-left:4px;display:grid}.toast__close:hover{color:#fff;background:#ffffff14}.empty-state{text-align:center;flex-direction:column;align-items:center;padding:46px 24px;display:flex}.empty-state__icon{border:1px solid var(--line);background:var(--surface-muted);width:46px;height:46px;color:var(--ink-3);border-radius:13px;place-items:center;display:grid}.empty-state h3{margin-top:14px;font-size:15px;font-weight:650}.empty-state p{max-width:320px;color:var(--ink-3);margin-top:5px;font-size:11.5px;line-height:1.65}.empty-state .button{margin-top:16px}.state-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);max-width:500px;box-shadow:var(--shadow-card);text-align:center;flex-direction:column;align-items:center;margin:42px auto;padding:34px 28px;display:flex}.state-card__icon{background:var(--surface-muted);width:47px;height:47px;color:var(--ink-3);border-radius:13px;place-items:center;display:grid}.state-card h2{letter-spacing:-.025em;margin-top:15px;font-size:19px;font-weight:700}.state-card p{max-width:360px;color:var(--ink-3);margin-top:6px;font-size:11.5px;line-height:1.65}.state-card .button{margin-top:17px}.not-found{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:32px;display:flex}.not-found__code{color:var(--primary-soft);letter-spacing:-.08em;margin-top:38px;font-size:clamp(90px,16vw,160px);font-weight:800;line-height:.8}.not-found h1{letter-spacing:-.03em;margin-top:-8px;font-size:25px;font-weight:700}.not-found p{color:var(--ink-3);margin-top:7px;font-size:12px}.not-found .button{margin-top:22px}.skeleton{background:linear-gradient(100deg,#eceee8 20%,#f4f5f1 38%,#eceee8 56%) 0 0/220% 100%;border-radius:12px;animation:1.5s linear infinite shimmer}.skeleton--eyebrow{width:130px;height:10px;margin-top:18px}.skeleton--title{width:310px;max-width:75%;height:38px;margin-top:14px}.skeleton--subtitle{width:480px;max-width:90%;height:14px;margin-top:12px}.skeleton--stat{border-radius:18px;height:136px}.skeleton--panel{border-radius:20px;height:380px;margin-top:17px}.skeleton--portal-hero{border-radius:28px;height:250px}.skeleton--portal-heading{width:220px;height:24px;margin:38px 0 18px}.skeleton--portal-course{border-radius:22px;height:260px;margin-bottom:14px}.skeleton--portal-hero+.skeleton--portal-heading+.skeleton--portal-course{margin-top:0}.stats-grid .skeleton--stat{margin:0}.spin{animation:.85s linear infinite spin}@media (width<=1280px){.dashboard-grid{grid-template-columns:minmax(0,1fr)}.panel--activity .activity-feed{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;display:grid}.panel--activity .activity-item:nth-child(odd):before{display:none}.panel--activity .activity-item{padding:10px 0}.student-hero{grid-template-columns:minmax(0,1fr) auto}.student-hero__actions{border-top:1px solid var(--line);grid-column:1/-1;justify-content:flex-end;padding-top:15px}}@media (width<=1024px){.admin-rail{align-items:center;width:82px;padding:25px 12px 16px}.admin-rail__brand{padding:0}.admin-rail .brand__type{display:none}.admin-nav{width:100%;margin-top:34px}.admin-nav__label{display:none}.admin-nav__item{justify-content:center;padding:0}.admin-nav__item span{display:none}.admin-rail__footer{align-items:center;width:100%}.rail-note{display:none}.rail-profile{justify-content:center;padding:14px 0 0}.rail-profile>div{display:none}.admin-main{margin-left:82px;padding-left:28px;padding-right:28px}.requirement-grid,.student-requirement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-card__header{grid-template-columns:minmax(0,1fr) 180px auto;gap:18px}.portal-summary{padding-left:28px}}@media (width<=860px){.admin-topbar__date{display:none}.page-heading{align-items:flex-start}.student-table__head,.student-row{grid-template-columns:minmax(148px,1.5fr) minmax(116px,1.1fr) 50px minmax(112px,1fr) 90px 14px;gap:9px;padding-left:17px;padding-right:17px}.share-card{flex-wrap:wrap}.share-card__content{flex-basis:calc(100% - 52px)}.share-card__code{margin-left:49px}.share-card__actions{margin-left:auto}.portal-hero{flex-direction:column;align-items:stretch;gap:28px;padding:30px}.portal-summary{border-top:1px solid var(--line);border-left:0;padding-top:22px;padding-left:0}.portal-summary__note{max-width:none}.entry-main{gap:48px;padding-top:20px}.entry-copy h1{font-size:43px}}@media (width<=760px){.admin-rail{border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fcfcf9f0;border-right:0;flex-direction:row;align-items:center;width:100%;height:63px;padding:8px 14px;inset:auto 0 0}.admin-rail__brand,.admin-rail__footer{display:none}.admin-nav{flex-direction:row;gap:6px;width:100%;margin:0}.admin-nav__item{flex:1;gap:7px;height:45px;font-size:12px}.admin-nav__item span{display:inline}.admin-main{margin-left:0;padding:0 18px 88px}.admin-topbar{height:66px}.admin-topbar__crumb span,.admin-topbar__crumb i{display:none}.admin-topbar__actions{gap:8px}.admin-topbar__actions .sync-status{padding:0 8px;font-size:9.5px}.page-heading{flex-direction:column;gap:17px;padding-top:5px;padding-bottom:21px}.page-heading .button{align-self:flex-start}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{min-height:125px}.stat-card__value{font-size:29px}.student-table__head{display:none}.student-row{grid-template-columns:minmax(0,1fr) auto 14px;gap:10px;padding:14px 18px}.student-row__identity{grid-area:1/1}.student-row__progress{grid-area:2/1;max-width:230px}.student-row__school,.student-row__courses,.student-row__status{display:none}.student-row__chevron{grid-area:1/3/span 2}.students-toolbar{flex-direction:column;align-items:stretch;padding:14px 18px}.search-field{width:100%}.filter-tabs{align-self:flex-start;max-width:100%;overflow-x:auto}.panel--activity .activity-feed,.panel--activity .activity-item:nth-child(odd):before{display:block}.section-heading{flex-direction:column;align-items:flex-start;gap:14px;margin-top:28px}.student-hero{grid-template-columns:minmax(0,1fr);gap:20px;padding:20px}.student-hero__progress{border-top:1px solid var(--line);border-left:0;padding-top:17px;padding-left:0}.student-hero__actions{grid-column:auto}.student-hero__name-row h1{font-size:23px}.share-card{align-items:flex-start;padding:14px}.share-card__icon{margin-top:2px}.share-card__content{flex-basis:calc(100% - 51px)}.share-card__code{order:4;margin-left:49px}.share-card__actions{order:5;width:100%;margin-left:49px}.course-card{padding:18px 17px 13px}.course-card__header{grid-template-columns:minmax(0,1fr) auto;gap:13px}.course-card__summary{grid-area:2/1/auto/-1}.course-card__actions{grid-area:1/2}.course-card__footer{flex-direction:column;align-items:flex-start;gap:6px}.entry-header{padding:21px 20px}.entry-header__admin{display:none}.entry-main{grid-template-columns:minmax(0,1fr);gap:38px;padding:28px 20px 48px}.entry-copy h1{font-size:clamp(36px,10.5vw,48px)}.entry-copy>p{margin-top:17px;font-size:13px}.entry-quote{margin-top:26px}.entry-card{border-radius:22px;padding:24px}.entry-footer{flex-direction:column;align-items:flex-start;gap:5px;padding:18px 20px 22px}.portal-header__inner{height:60px;padding:0 18px}.portal-header__brand{gap:8px}.portal-header__actions{gap:9px}.portal-header__actions .sync-status{height:26px;padding:0 8px;font-size:9px}.portal-user,.portal-header__divider{display:none}.portal-main{padding:22px 18px 52px}.portal-hero{border-radius:22px;padding:25px 22px}.portal-hero h1{font-size:32px}.portal-summary{gap:15px}.portal-section-heading{flex-direction:column;align-items:flex-start;gap:13px;margin-top:29px}.portal-section-heading .filter-tabs{justify-content:space-between;width:100%}.portal-section-heading .filter-tab{flex:1;justify-content:center}.student-course{border-radius:19px;padding:20px 17px 14px}.student-course__header{grid-template-columns:34px minmax(0,1fr) auto;gap:11px}.student-course__index{width:34px;height:34px}.student-course__name-row h3{font-size:17px}.student-course__number strong{font-size:20px}.student-requirement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-footer{flex-direction:column;align-items:flex-start;gap:8px;padding:20px 18px 28px}.modal-layer{align-items:end;padding:12px}.modal{border-radius:22px;max-height:calc(100vh - 24px)}.modal__header{padding:21px 20px 0}.modal__body{padding:18px 20px 20px}.modal__footer{padding:13px 20px}.toast-viewport{max-width:none;bottom:82px;left:16px;right:16px}}@media (width<=560px){.admin-main{padding-left:14px;padding-right:14px}.admin-topbar__actions .sync-status{display:none}.page-heading h1{font-size:29px}.stats-grid{gap:9px}.stat-card{min-height:118px;padding:14px}.stat-card__label{font-size:11px}.stat-card__icon{width:28px;height:28px}.stat-card__value{font-size:27px}.stat-card__note{font-size:9.5px}.panel__header{padding:18px 17px 13px}.student-row{padding-left:15px;padding-right:15px}.panel--activity .activity-feed,.panel--activity .activity-empty{padding-left:17px;padding-right:17px}.students-toolbar{padding:13px 15px}.student-table__count{padding-left:17px;padding-right:17px}.course-card{padding-left:14px;padding-right:14px}.requirement-grid{grid-template-columns:minmax(0,1fr)}.requirement-tile{min-height:63px}.share-card__code{display:none}.share-card__actions{margin-left:0;padding-left:49px}.student-hero__identity{gap:12px}.student-hero__meta{font-size:10.5px}.portal-header__brand .brand__sub,.portal-badge,.portal-switch span{display:none}.portal-hero h1{font-size:29px}.portal-summary{flex-direction:row;align-items:center}.portal-summary__note{font-size:9px}.student-requirement-grid{grid-template-columns:minmax(0,1fr)}.student-course__footer{flex-direction:column;align-items:flex-start;gap:6px}.entry-copy h1{font-size:35px}.entry-dimensions>span{padding:6px 8px;font-size:9.5px}.form-grid{grid-template-columns:minmax(0,1fr)}.modal-layer{padding:8px}.modal{border-radius:20px;max-height:calc(100vh - 16px)}.modal__header{padding:19px 17px 0}.modal__body{padding:16px 17px 18px}.modal__footer{padding:12px 17px}.modal__footer .button{flex:1}}@media (width<=360px){.portal-summary{flex-direction:column;align-items:flex-start}}@media (width<=390px){.entry-card{padding:20px}.entry-header__portal{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.78)}}@keyframes shimmer{to{background-position-x:-220%}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}:root{--bg:#f2f3f5;--bg-deep:#e9eaec;--surface:#fff;--surface-muted:#f8f7f5;--surface-soft:#fbfbf9;--ink:#1d1d1f;--ink-2:#5b5b60;--ink-3:#77777c;--line:#e5e4e2;--line-strong:#d3d1cc;--primary:#f1ad1c;--primary-strong:#c98f0e;--primary-soft:#fef7e8;--primary-softer:#fffdf6;--success:#1f7a55;--success-soft:#eaf5ef;--warning:#99631d;--warning-soft:#fbf5e9;--danger:#b33f3f;--danger-soft:#fbefee;--radius-xl:18px;--radius-lg:14px;--radius-md:11px;--radius-sm:8px;--shadow-card:0 1px 2px #181d1f08;--shadow-float:0 26px 70px -34px #181d1f47}body{background:var(--bg);font-size:14px}::selection{background:#fdecc2}.button{border-radius:9px}.button--primary,.button--primary:hover{box-shadow:none}.button--link{height:auto;color:var(--primary);background:0 0;border:0;padding:0;font-size:11px;font-weight:550}.button--link:hover{color:var(--primary-strong);text-decoration:underline;transform:none}.field__hint{color:var(--ink-3);font-size:9.5px;line-height:1.45}.brand__mark{width:34px;height:34px;box-shadow:none;background:0 0;border-radius:50%}.brand__mark-img{object-fit:contain;width:100%;height:100%;display:block}.brand__type{gap:2px}.brand__name{letter-spacing:.1em;font-size:15.5px;font-weight:760}.brand__sub{color:var(--ink-3);letter-spacing:.03em;font-size:8.5px;font-weight:500}.admin-page{max-width:1180px}.admin-topbar{background:#f4f5f6eb;height:64px}.admin-topbar__crumb,.admin-topbar__date{font-size:11px}.page-heading{align-items:flex-end;padding:8px 0 20px}.page-heading h1{letter-spacing:-.035em;margin:0;font-size:27px;font-weight:700}.page-heading__sub{color:var(--ink-3);margin-top:6px;font-size:12px;line-height:1.6}.page-heading--compact{padding-top:4px}.panel{box-shadow:var(--shadow-card);border-radius:14px}.panel__header{padding:17px 18px 12px}.panel__header h2{font-size:14.5px;font-weight:650}.panel__header p{margin-top:3px;font-size:10.5px}.section-heading{align-items:flex-end;margin:28px 0 13px}.section-heading h2{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:680}.section-heading p:not(.eyebrow){margin-top:4px;font-size:10.5px}.rail-note{background:var(--surface)}.rail-profile__avatar{background:var(--primary)}.admin-nav__item.is-active{background:var(--primary-soft);color:var(--primary-strong)}.stats-grid--compact{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 16px}.stats-grid--compact .stat-card{border-radius:13px;min-height:106px;padding:14px 15px}.stats-grid--compact .stat-card__label{font-size:11px}.stats-grid--compact .stat-card__icon{border-radius:8px;width:28px;height:28px}.stats-grid--compact .stat-card__value{margin-top:7px;font-size:26px}.stats-grid--compact .stat-card__note{padding-top:7px;font-size:9.5px}.status-badge{height:22px;padding:0 8px;font-size:10px;font-weight:550}.status-badge--not_started{color:#687075;background:#f0f2f3}.status-badge--in_progress{background:var(--primary-soft);color:var(--primary-strong)}.status-badge--missed{background:var(--danger-soft);color:var(--danger)}.status-badge--completed{background:var(--success-soft);color:var(--success)}.status-control{border:1px solid var(--line);background:var(--surface-muted);border-radius:8px;flex:none;gap:2px;padding:2px;display:inline-flex}.status-control button{height:26px;color:var(--ink-3);white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:0 8px;font-size:10px;font-weight:500;line-height:1;transition:background .14s,color .14s,box-shadow .14s}.status-control button:hover:not(:disabled){color:var(--ink)}.status-control button.is-active{background:var(--surface);color:var(--ink-2);font-weight:600;box-shadow:0 1px 3px #181d1f17}.status-control--in_progress button.is-active{background:var(--primary-soft);color:var(--primary-strong);box-shadow:none}.status-control--missed button.is-active{background:var(--danger-soft);color:var(--danger);box-shadow:none}.status-control--completed button.is-active{background:var(--success-soft);color:var(--success);box-shadow:none}.status-control button:disabled{opacity:.55}.status-control--compact button{height:22px;padding:0 6px;font-size:9.5px}.today-panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-card);border-radius:14px;overflow:hidden}.today-panel__header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:20px;padding:17px 20px 14px;display:flex}.today-panel__header h2{letter-spacing:-.02em;font-size:16px;font-weight:680}.today-panel__header p{color:var(--ink-3);margin-top:4px;font-size:11px}.today-panel__counts{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.today-panel__counts>span{background:var(--surface-muted);height:25px;color:var(--ink-2);white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:0 8px;font-size:10px;display:inline-flex}.today-panel__counts svg{color:var(--ink-3)}.today-grid{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);display:grid}.today-column{min-width:0;padding:14px 20px 16px}.today-column+.today-column{border-left:1px solid var(--line)}.today-column__header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:2px;display:flex}.today-column__header>div{align-items:center;gap:7px;display:flex}.today-column__header svg{color:var(--ink-3)}.today-column__header h3{font-size:12px;font-weight:620}.today-column__header>span{color:var(--ink-3);font-size:9.5px}.today-task-list{flex-direction:column;display:flex}.today-task{border-bottom:1px solid #eef0f1;grid-template-columns:34px minmax(0,1fr) 112px auto;align-items:center;gap:10px;padding:10px 0;display:grid}.today-task:last-child{border-bottom:0;padding-bottom:2px}.today-task__info{flex-direction:column;gap:2px;min-width:0;display:flex}.today-task__info strong{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:600;overflow:hidden}.today-task__info span{color:var(--ink-3);font-size:9.5px}.today-task__progress{align-items:center;gap:7px;display:flex}.today-task__progress .progress-line{flex:1}.today-task__progress>span{width:32px;color:var(--ink-3);text-align:right;font-size:9px}.today-meeting{border-bottom:1px solid #eef0f1;grid-template-columns:46px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 0;display:grid}.today-meeting:last-child{border-bottom:0;padding-bottom:2px}.today-meeting.is-completed{opacity:.72}.today-meeting__time{flex-direction:column;gap:1px;display:flex}.today-meeting__time strong{font-variant-numeric:tabular-nums;font-size:12px;font-weight:650}.today-meeting__time span{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:9px}.today-meeting__info{flex-direction:column;gap:2px;min-width:0;display:flex}.today-meeting__info strong{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:600;overflow:hidden}.today-meeting__info span{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;overflow:hidden}.today-exams{border-top:1px solid var(--line);padding:14px 20px 16px}.today-exams .today-column__header{margin-bottom:2px}.today-exam{grid-template-columns:46px minmax(0,1fr) auto auto}.today-exam.is-completed{opacity:.72}.today-empty{color:var(--success);background:#f8faf9;border-radius:8px;align-items:center;gap:7px;margin-top:8px;padding:12px;font-size:10.5px;display:flex}.student-header{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-card);border-radius:14px;grid-template-columns:minmax(0,1fr) 300px auto;align-items:center;gap:24px;padding:20px 22px;display:grid}.student-header__identity{align-items:center;gap:13px;min-width:0;display:flex}.student-header__name-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.student-header__name-row h1{letter-spacing:-.03em;font-size:23px;font-weight:690;line-height:1.2}.student-header__meta{color:var(--ink-2);margin-top:5px;font-size:10.5px}.student-header__contact{color:var(--ink-3);margin-top:2px;font-size:9.5px}.student-header__progress{min-width:0}.student-header__progress-label{color:var(--ink-3);justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px;font-size:9.5px;display:flex}.student-header__progress-label strong{color:var(--ink);letter-spacing:-.02em;font-size:16px;font-weight:680}.student-header__progress-note{color:var(--ink-3);margin-top:6px;font-size:9px;display:block}.student-header__actions{align-items:center;gap:6px;display:flex}.share-card{border-radius:12px;margin-top:10px;padding:11px 14px}.share-card__icon{width:32px;height:32px}.share-card__content>span{font-size:9px}.share-card__content code{font-size:10px}.teacher-note{border-radius:10px;margin-top:10px;padding:11px 14px}.all-done-banner{border-radius:10px;margin-top:12px}.detail-created-at{margin-top:22px;font-size:9px}.course-list{gap:12px}.course-card{box-shadow:var(--shadow-card);border-radius:14px;padding:18px}.course-card__header{grid-template-columns:minmax(0,1fr) 200px auto;gap:18px}.course-card__name-row h3{font-size:16px;font-weight:650}.course-card__meta{gap:0;margin-top:5px}.course-card__meta span{color:var(--ink-3);background:0 0;padding:0;font-size:9.5px}.course-card__meta span:not(:last-child):after{background:var(--line-strong);vertical-align:middle;content:"";border-radius:50%;width:2px;height:2px;margin:0 6px;display:inline-block}.course-card__summary{padding-top:2px}.course-card__summary-label{color:var(--ink-3);align-items:baseline;margin-bottom:6px;font-size:9.5px}.course-card__summary-label>span strong{color:var(--ink-2);font-weight:650}.course-card__percent{color:var(--ink);letter-spacing:-.02em;font-size:16px;font-weight:680}.course-card__actions{margin-top:-2px}.course-core-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.course-core-item{border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;align-items:center;gap:9px;min-width:0;padding:9px 10px;display:flex}.course-core-item--in_progress{background:#fafbff;border-color:#dfe6f7}.course-core-item--completed{background:#f8fbf9;border-color:#dfece5}.course-core-item__icon{border:1px solid var(--line);background:var(--surface);width:29px;height:29px;color:var(--ink-3);border-radius:7px;flex:none;place-items:center;display:grid}.course-core-item--in_progress .course-core-item__icon{color:var(--primary)}.course-core-item--completed .course-core-item__icon{color:var(--success)}.course-core-item__copy{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.course-core-item__copy strong{font-size:11.5px;font-weight:600}.course-core-item__copy span{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.course-subgrid{grid-template-columns:minmax(0,1.05fr) minmax(0,1.25fr);gap:10px;margin-top:10px;display:grid}.course-subcard{border:1px solid var(--line);background:var(--surface-soft);border-radius:11px;min-width:0;padding:12px 13px}.course-subcard__header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.course-subcard__title{align-items:center;gap:8px;min-width:0;display:flex}.course-subcard__icon{border:1px solid var(--line);background:var(--surface);width:27px;height:27px;color:var(--ink-3);border-radius:7px;flex:none;place-items:center;display:grid}.course-subcard__title>div{flex-direction:column;gap:1px;min-width:0;display:flex}.course-subcard__title strong{font-size:11.5px;font-weight:620}.course-subcard__title span{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.course-subcard__header-actions{flex:none;align-items:center;gap:6px;display:flex}.course-subcard__header-actions .button{padding:0 8px}.habit-card__summary{justify-content:space-between;align-items:flex-end;gap:10px;margin-top:12px;display:flex}.habit-card__summary>div{flex-direction:column;gap:1px;display:flex}.habit-card__summary strong{letter-spacing:-.02em;font-size:17px;font-weight:680}.habit-card__summary strong span{color:var(--ink-3);font-size:10px;font-weight:500}.habit-card__summary>div>span{color:var(--ink-3);font-size:9.5px}.habit-card__percent{color:var(--ink-3);font-size:10px}.habit-card .progress-line{margin-top:8px}.habit-days{flex-wrap:wrap;gap:4px;margin-top:9px;display:flex}.habit-days>span{border:1px solid var(--line-strong);background:var(--surface);color:#fff;border-radius:3px;place-items:center;width:10px;height:10px;display:grid}.habit-days>span.is-done{border-color:var(--success);background:var(--success)}.habit-days>span.is-next{border-color:var(--primary);background:var(--primary-soft)}.habit-card__footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding-top:10px;display:flex}.habit-card__actions{align-items:center;gap:5px;display:flex}.meeting-admin-list{flex-direction:column;margin-top:10px;display:flex}.meeting-admin-row{border-top:1px solid #eceff0;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:9px 0;display:grid}.meeting-admin-row:first-child{border-top:0}.meeting-admin-row__main{flex-direction:column;gap:2px;min-width:0;display:flex}.meeting-admin-row__title-line{align-items:center;gap:5px;min-width:0;display:flex}.meeting-admin-row__title-line strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.meeting-admin-row__main>span{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.meeting-admin-row.is-today{background:var(--primary-softer);border-radius:7px;margin:0 -6px;padding-left:6px;padding-right:6px}.mini-tag{background:var(--primary-soft);height:16px;color:var(--primary);white-space:nowrap;border-radius:4px;align-items:center;padding:0 5px;font-size:8px;font-weight:600;display:inline-flex}.meeting-admin-row__actions{gap:1px;display:flex}.meeting-admin-row__actions .icon-button{border-color:#0000;border-radius:6px;width:26px;height:26px}.meeting-empty{border-top:1px solid #eceff0;flex-direction:column;align-items:flex-start;gap:9px;margin-top:10px;padding-top:10px;display:flex}.meeting-empty p{color:var(--ink-3);font-size:9.5px;line-height:1.55}.student-course{box-shadow:var(--shadow-card);border-radius:14px;padding:18px 20px 16px}.student-course__header{grid-template-columns:34px minmax(0,1fr) auto;gap:12px}.student-course__index{background:var(--surface-muted);width:34px;height:34px;color:var(--ink-3);border-radius:8px;font-size:9px}.student-course__name-row h3{font-size:17px;font-weight:650}.student-course__meta{gap:0;margin-top:4px}.student-course__meta span:not(:last-child):after{margin-left:6px;margin-right:6px}.student-course__number strong{font-size:19px;font-weight:680}.student-course__number span{font-size:9px}.student-course__bar{height:5px;margin:13px 0 14px}.student-core-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.student-course--course-ok{border-color:#2f7d4a42}.student-course__ok{background:var(--success-soft);color:var(--success);white-space:nowrap;border-radius:999px;align-items:center;gap:3px;padding:3px 7px;font-size:9px;font-weight:600;display:inline-flex}.student-core-item--course-ok{background:linear-gradient(135deg,#edf8ee,#f8fcf8);border-color:#2f7d4a47}.student-core-item--course-ok .student-core-item__icon{color:var(--success);background:#fff;border-color:#2f7d4a33}.student-core-item--course-ok .student-core-item__copy strong{color:#2f6b3a}.meeting-count{color:var(--ink-3);font-size:9.5px}.student-core-item{border:1px solid var(--line);background:var(--surface-soft);border-radius:9px;align-items:center;gap:8px;min-width:0;padding:9px 10px;display:flex;position:relative;overflow:hidden}.student-core-item>*{z-index:1;position:relative}.student-core-item--in_progress{background:linear-gradient(110deg,#fff8e7 0%,#fffdf7 35%,#ffe9ad 55%,#fffdf7 78%,#fff8e7 100%) 0 0/240% 100%;border-color:#f1ad1c6b;animation:4.8s ease-in-out infinite ocams-card-fill,4.8s ease-in-out infinite ocams-card-alert}.student-core-item--in_progress:before{z-index:0;content:"";pointer-events:none;background:linear-gradient(#ffffff5c,#fff0 58%);position:absolute;inset:0}.student-core-item--in_progress:after{z-index:0;content:"";opacity:0;pointer-events:none;background:linear-gradient(90deg,#fff0 0%,#ffffffeb 38%,#f1ad1c73 58%,#fff0 100%);width:46%;animation:4.8s infinite ocams-card-sheen;position:absolute;top:-35%;bottom:-35%;left:-55%;transform:skew(-18deg)}@keyframes ocams-card-fill{0%,to{background-position:0%}50%{background-position:100%}}@keyframes ocams-card-sheen{0%{opacity:0;left:-55%}8%{opacity:1}55%{opacity:.95;left:108%}62%,to{opacity:0;left:108%}}@keyframes ocams-card-alert{0%,48%,to{border-color:#f1ad1c61}8%{border-color:#f1ad1cd6}}@media (prefers-reduced-motion:reduce){.student-core-item--in_progress{animation:none}.student-core-item--in_progress:after{display:none}}.student-core-item__icon{border:1px solid var(--line);background:var(--surface);width:27px;height:27px;color:var(--ink-3);border-radius:7px;flex:none;place-items:center;display:grid}.student-core-item__copy{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.student-core-item__copy strong{font-size:11px;font-weight:600}.student-core-item__copy span{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:8.5px;overflow:hidden}.student-subgrid{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:8px;margin-top:8px;display:grid}.student-subcard{border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;min-width:0;padding:11px 12px}.student-subcard__header{justify-content:space-between;align-items:center;gap:8px;display:flex}.student-subcard__header>div{align-items:center;gap:6px;display:flex}.student-subcard__header strong{font-size:11px;font-weight:600}.student-subcard__icon{background:var(--surface);width:24px;height:24px;color:var(--ink-3);border:1px solid var(--line);border-radius:6px;place-items:center;display:grid}.student-subcard__none{color:var(--ink-3);font-size:9px}.student-subcard__empty{border-top:1px solid var(--line);color:var(--ink-3);margin-top:9px;padding-top:9px;font-size:9px;line-height:1.55}.habit-readonly__summary{justify-content:space-between;align-items:baseline;gap:8px;margin-top:9px;display:flex}.habit-readonly__summary>strong{font-size:15px;font-weight:680}.habit-readonly__summary>strong span{color:var(--ink-3);font-size:9px;font-weight:500}.habit-readonly__today{color:var(--ink-3);font-size:8.5px}.habit-readonly__today.is-done{color:var(--success)}.habit-readonly .habit-days{margin-top:6px}.student-meeting-list{flex-direction:column;margin-top:8px;display:flex}.student-meeting{border-top:1px solid #eceff0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 8px;padding:7px 0;display:grid}.student-meeting:first-child{border-top:0}.student-meeting__main{flex-direction:column;gap:1px;min-width:0;display:flex}.student-meeting__main strong{text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;overflow:hidden}.student-meeting__main span{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:8.5px;overflow:hidden}.student-meeting.is-today{background:var(--primary-softer);border-radius:6px;margin:0 -4px;padding-left:4px;padding-right:4px}.portal-page{background:var(--bg)}.portal-header{background:#fffffff0}.portal-header__inner{max-width:1080px;height:62px}.portal-main{max-width:1080px;padding-top:26px}.portal-overview{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-card);border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px 28px;padding:22px 24px 18px;display:grid}.portal-overview__identity{align-items:center;gap:12px;min-width:0;display:flex}.portal-overview__name-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.portal-overview__name-row h1{letter-spacing:-.03em;font-size:24px;font-weight:690;line-height:1.2}.portal-overview__identity p{color:var(--ink-2);margin-top:4px;font-size:10.5px}.portal-overview__metrics{align-items:stretch;gap:26px;display:flex}.portal-overview__metrics>div{flex-direction:column;gap:2px;min-width:74px;display:flex}.portal-overview__metrics>div+div{border-left:1px solid var(--line);padding-left:26px}.portal-overview__metrics span{color:var(--ink-3);font-size:9px}.portal-overview__metrics strong{letter-spacing:-.03em;font-size:19px;font-weight:680;line-height:1.2}.portal-overview__metrics strong i{color:var(--ink-3);letter-spacing:0;font-size:9.5px;font-style:normal;font-weight:500}.portal-overview__progress{border-top:1px solid var(--line);grid-column:1/-1;align-items:center;gap:12px;padding-top:14px;display:flex}.portal-overview__progress .progress-line{flex:1}.portal-overview__progress>span{color:var(--ink-3);white-space:nowrap;font-size:9px}.portal-today{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-card);border-radius:14px;margin-top:12px}.portal-today__header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:15px 20px 12px;display:flex}.portal-today__header h2{font-size:14px;font-weight:650}.portal-today__header p{color:var(--ink-3);margin-top:3px;font-size:9.5px}.portal-today__header>span{background:var(--surface-muted);color:var(--ink-2);white-space:nowrap;border-radius:5px;padding:4px 7px;font-size:9.5px}.portal-today__grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.portal-today__column{min-width:0;padding:13px 20px 15px}.portal-today__column+.portal-today__column{border-left:1px solid var(--line)}.portal-today__column-title{color:var(--ink-3);align-items:center;gap:6px;display:flex}.portal-today__column-title h3{color:var(--ink-2);font-size:11px;font-weight:600}.portal-today__list{flex-direction:column;margin-top:5px;display:flex}.portal-today__item{border-top:1px solid #eef0f1;justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:8px 0;display:flex}.portal-today__item>div{flex-direction:column;gap:2px;min-width:0;display:flex}.portal-today__item strong{text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;font-weight:600;overflow:hidden}.portal-today__item span:not(.status-badge):not(.task-badge){color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.portal-today__empty{color:var(--success);background:#f8faf9;border-radius:7px;align-items:center;gap:6px;margin-top:8px;padding:9px 10px;font-size:9.5px;display:flex}.task-badge{background:var(--primary-soft);height:21px;color:var(--primary-strong);white-space:nowrap;border-radius:5px;flex:none;align-items:center;padding:0 7px;font-size:9px;font-weight:550;display:inline-flex}.portal-section-heading{margin:26px 0 12px}.portal-section-heading h2{letter-spacing:-.02em;font-size:18px;font-weight:680}.portal-section-heading p{margin-top:3px;font-size:9.5px}.portal-course-list{gap:12px}.portal-note{background:var(--surface);border-radius:10px;margin-top:16px}.portal-note p{font-size:9.5px}.portal-sync-line{margin-top:15px;font-size:9px}.portal-footer{max-width:1080px;padding-top:18px;padding-bottom:28px;font-size:9px}.portal-footer .brand__name{font-size:12px}.portal-error-card h1{font-size:19px}.entry-page{background:var(--bg)}.entry-main{grid-template-columns:minmax(0,1fr) 410px;gap:80px;max-width:1080px;padding-top:48px}.entry-copy h1{letter-spacing:-.045em;margin:0;font-size:40px;font-weight:700;line-height:1.15}.entry-copy>p{max-width:490px;color:var(--ink-2);margin-top:15px;font-size:13px;line-height:1.75}.query-list{border-top:1px solid var(--line);flex-direction:column;gap:16px;margin-top:34px;padding-top:24px;display:flex}.query-list__item{align-items:flex-start;gap:11px;display:flex}.query-list__item>span{border:1px solid var(--line);width:34px;height:34px;color:var(--ink-2);background:#ffffffa6;border-radius:8px;flex:none;place-items:center;display:grid}.query-list__item strong{font-size:11.5px;font-weight:620;display:block}.query-list__item p{max-width:420px;color:var(--ink-3);margin-top:2px;font-size:10px;line-height:1.55}.entry-card{border-radius:16px;padding:27px;box-shadow:0 24px 60px -42px #181d1f59}.entry-card__icon{border-radius:10px;width:42px;height:42px}.entry-card h2{letter-spacing:-.025em;margin-top:16px;font-size:20px;font-weight:690}.entry-form{margin-top:20px}.entry-form .field+.field{margin-top:12px}.entry-form input[readonly]{background:var(--surface-muted);color:var(--ink-3)}.entry-password{position:relative}.entry-password .input{padding-right:42px}.entry-password__toggle{width:30px;height:30px;color:var(--ink-3);background:0 0;border:0;border-radius:6px;place-items:center;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.entry-password__toggle:hover{background:var(--surface-muted);color:var(--ink)}.entry-card__hint{color:var(--ink-3);margin-top:10px;font-size:9.5px;line-height:1.6}.entry-header__portal,.entry-footer{font-size:9px}.student-table__head{background:#fafbfb}.student-table__head,.student-row{grid-template-columns:minmax(160px,1.55fr) minmax(128px,1.2fr) 52px minmax(118px,1fr) 94px 14px}.icon-button{border-radius:8px;width:32px;height:32px}.input{border-radius:8px}.input--large{height:48px}.form-grid{gap:13px}.modal{border-radius:18px}.modal__header{padding-top:21px}.modal__body{padding-top:17px}.skeleton{border-radius:9px}.skeleton--stat{border-radius:13px}@media (width<=1280px){.stats-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))}.today-grid{grid-template-columns:minmax(0,1fr)}.today-column+.today-column{border-top:1px solid var(--line);border-left:0}}@media (width<=1100px){.student-header{grid-template-columns:minmax(0,1fr) auto}.student-header__progress{grid-area:2/1/auto/-1}.student-header__actions{grid-area:1/2}.course-card__header{grid-template-columns:minmax(0,1fr) 180px auto}.portal-overview{grid-template-columns:minmax(0,1fr)}.portal-overview__metrics{gap:20px}.portal-overview__metrics>div+div{padding-left:20px}.portal-overview__progress{grid-column:auto}}@media (width<=980px){.course-subgrid,.student-subgrid,.course-core-grid{grid-template-columns:minmax(0,1fr)}.course-card__header{grid-template-columns:minmax(0,1fr) auto}.course-card__summary{grid-area:2/1/auto/-1}.course-card__actions{grid-area:1/2}.entry-main{grid-template-columns:minmax(0,1fr) 380px;gap:48px}}@media (width<=860px){.portal-today__grid{grid-template-columns:minmax(0,1fr)}.portal-today__column+.portal-today__column{border-top:1px solid var(--line);border-left:0}.portal-overview__metrics{flex-wrap:wrap}.portal-overview__metrics>div+div{padding-left:18px}.today-panel__header{flex-direction:column;gap:10px}.today-panel__counts{flex-wrap:wrap}.entry-main{grid-template-columns:minmax(0,1fr);gap:32px;padding-top:28px}.entry-copy h1{font-size:34px}.query-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px;padding-top:20px;display:grid}.query-list__item{flex-direction:column;gap:7px}}@media (width<=760px){.admin-main{padding-left:16px;padding-right:16px}.admin-topbar{height:58px}.page-heading{align-items:flex-start;padding-top:4px;padding-bottom:16px}.page-heading h1{font-size:24px}.page-heading__sub{font-size:11px}.stats-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stats-grid--compact .stat-card{min-height:100px}.today-panel__header,.today-column,.today-exams{padding-left:14px;padding-right:14px}.today-task{grid-template-columns:32px minmax(0,1fr) auto;gap:8px}.today-task__progress{display:none}.today-meeting{grid-template-columns:42px minmax(0,1fr) auto;gap:8px}.today-meeting>.button{grid-column:2/-1;justify-self:start;margin-top:2px}.student-header{grid-template-columns:minmax(0,1fr);gap:15px;padding:16px}.student-header__actions{grid-area:auto;justify-content:flex-start}.student-header__progress{border-top:1px solid var(--line);grid-area:auto;padding-top:13px}.share-card{flex-wrap:wrap}.course-card{padding:14px}.course-card__header{grid-template-columns:minmax(0,1fr) auto;gap:10px}.course-core-grid{grid-template-columns:minmax(0,1fr)}.course-core-item{flex-wrap:wrap}.course-core-item__copy{flex-basis:calc(100% - 42px)}.course-core-item .status-control{width:100%;margin-top:2px}.course-core-item .status-control button{flex:1}.meeting-admin-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main actions""status status";gap:6px 8px}.meeting-admin-row__main{grid-area:main}.meeting-admin-row .status-control{grid-area:status;width:100%}.meeting-admin-row .status-control button{flex:1}.meeting-admin-row__actions{grid-area:actions}.student-course{padding:14px}.student-course__header{grid-template-columns:30px minmax(0,1fr) auto;gap:9px}.student-course__index{width:30px;height:30px;font-size:8px}.student-course__name-row h3{font-size:15px}.student-course__number strong{font-size:17px}.student-core-grid{grid-template-columns:minmax(0,1fr)}.portal-header__inner{height:57px;padding:0 16px}.portal-main{padding:18px 16px 44px}.portal-overview{border-radius:13px;padding:17px 16px 14px}.portal-overview__name-row h1{font-size:21px}.portal-overview__metrics{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding-top:12px;display:grid}.portal-overview__metrics>div{min-width:0}.portal-overview__metrics>div+div{border-left:1px solid var(--line);padding-left:12px}.portal-overview__metrics strong{font-size:16px}.portal-overview__progress{padding-top:10px}.portal-today__header,.portal-today__column{padding-left:14px;padding-right:14px}.entry-main{padding:20px 18px 40px}.entry-copy h1{font-size:30px}.query-list{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:20px}.query-list__item{flex-direction:row}.entry-card{padding:22px}.entry-footer{padding-left:18px;padding-right:18px}}@media (width<=560px){.today-panel__counts{display:none}.today-task{grid-template-columns:30px minmax(0,1fr) auto}.today-meeting{grid-template-columns:minmax(0,1fr) auto}.today-meeting__time{flex-direction:row;grid-column:1/-1;align-items:baseline;gap:5px}.today-meeting__time strong{font-size:11px}.today-meeting>.button{grid-column:1/-1}.stats-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))}.student-header__name-row h1{font-size:21px}.course-subcard__header{flex-wrap:wrap}.habit-card__footer{flex-direction:column;align-items:flex-start}.habit-card__actions{width:100%}.habit-card__actions .button{flex:1}.portal-overview__metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-overview__metrics strong i{margin-top:1px;display:block}.portal-today__header{flex-direction:column;gap:7px}.entry-header__portal{display:none}}@media (width<=380px){.stats-grid--compact{grid-template-columns:minmax(0,1fr)}.portal-overview__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-overview__metrics>div:nth-child(3){border-top:1px solid var(--line);border-left:0;padding-top:8px;padding-left:0}}.today-panel__header p{font-size:11.5px}.today-column__header h3{font-size:12.5px}.today-column__header>span{font-size:10px}.today-task__info strong{font-size:12px}.today-task__info span{font-size:10px}.today-task__progress>span{font-size:9.5px}.today-meeting__time strong{font-size:12.5px}.today-meeting__time span{font-size:9.5px}.today-meeting__info strong{font-size:12px}.today-meeting__info span,.course-card__meta span,.course-card__summary-label{font-size:10px}.course-core-item__copy strong{font-size:12px}.course-core-item__copy span{font-size:9.5px}.course-subcard__title strong{font-size:12px}.course-subcard__title span{font-size:9.5px}.habit-card__summary>div>span{font-size:10px}.meeting-admin-row__title-line strong{font-size:11.5px}.meeting-admin-row__main>span{font-size:9.5px}.student-core-item__copy strong{font-size:11.5px}.student-core-item__copy span{font-size:9px}.student-course__meta span,.student-subcard__empty{font-size:9.5px}.portal-overview__identity p{font-size:11px}.portal-overview__metrics span{font-size:9.5px}.portal-overview__metrics strong i,.portal-today__header p{font-size:10px}.portal-today__item strong{font-size:11px}.portal-today__item span:not(.status-badge):not(.task-badge){font-size:9.5px}.student-header__meta{font-size:11px}.student-header__contact{font-size:10px}.student-header__progress-note{font-size:9.5px}.entry-card__sub{font-size:11.5px}@media (width<=760px){.section-heading{flex-direction:column;align-items:flex-start}.section-heading>.button{align-self:flex-start}}@media (width<=560px){.portal-overview__metrics strong i{margin-top:0;display:inline}}@media (width<=760px){.status-control--compact button{height:29px;font-size:10.5px}.habit-card__actions .button,.course-subcard__header-actions .button{min-height:34px}}.password-field{display:block;position:relative}.password-field .input{padding-right:40px}.password-field__toggle{width:30px;height:30px;color:var(--ink-3);background:0 0;border:0;border-radius:6px;place-items:center;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.password-field__toggle:hover{background:var(--surface-muted);color:var(--ink)}.module-picker{border:0;min-width:0;margin:0;padding:0}.module-picker legend{margin-bottom:7px;padding:0}.module-picker__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.module-option{border:1px solid var(--line);background:var(--surface-soft);cursor:pointer;border-radius:9px;align-items:center;gap:8px;min-width:0;padding:9px;transition:border-color .14s,background .14s;display:flex}.module-option:hover{border-color:var(--line-strong);background:var(--surface)}.module-option.is-selected{background:var(--primary-softer);border-color:#e9d3a0}.module-option input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.module-option__icon{border:1px solid var(--line);background:var(--surface);width:28px;height:28px;color:var(--ink-3);border-radius:7px;flex:none;place-items:center;display:grid}.module-option.is-selected .module-option__icon{color:var(--primary);border-color:#d8e0f7}.module-option__copy{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.module-option__copy strong{font-size:10.5px;font-weight:620}.module-option__copy small{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:8.5px;line-height:1.4;overflow:hidden}.module-option__check{border:1px solid var(--line-strong);background:var(--surface);color:#fff;border-radius:50%;flex:none;place-items:center;width:17px;height:17px;display:grid}.module-option.is-selected .module-option__check{border-color:var(--primary);background:var(--primary)}.habit-settings{border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px;display:grid}.student-credentials{color:var(--ink-3);flex-wrap:wrap;gap:4px 15px;margin-top:5px;font-size:9.5px;display:flex}.student-credentials>span{align-items:center;gap:4px;min-width:0;display:inline-flex}.student-credentials strong{max-width:220px;color:var(--ink-2);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;font-weight:500;overflow:hidden}.student-credentials__password{letter-spacing:.02em}.student-credentials__toggle{width:22px;height:22px;color:var(--ink-3);background:0 0;border:0;border-radius:5px;place-items:center;display:grid}.student-credentials__toggle:hover{background:var(--surface-muted);color:var(--ink)}.course-card__modules{flex-wrap:wrap;gap:3px;margin-top:6px;display:flex}.course-card__modules span{background:var(--surface-muted);color:var(--ink-3);border-radius:4px;padding:2px 6px;font-size:8.5px;line-height:1.4}.course-card__modules span:last-child{margin-right:0}.habit-card__plan,.habit-readonly__plan{color:var(--ink-3);margin-top:5px;font-size:8.5px;line-height:1.45}.online-link{color:var(--primary);white-space:nowrap;align-items:center;gap:2px;margin-left:5px;font-size:9px;font-weight:550;display:inline-flex}.online-link:hover{color:var(--primary-strong);text-decoration:underline}.student-meeting__main span .online-link{margin-left:6px;font-size:8.5px;display:inline-flex}.course-subgrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.student-subgrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.student-table__head,.student-row{grid-template-columns:minmax(150px,.9fr) minmax(0,1.8fr) minmax(110px,.75fr) 88px 14px;gap:10px}.student-row{padding-top:11px;padding-bottom:11px}.student-row__course-list{flex-direction:column;gap:3px;min-width:0;display:flex}.student-course-brief{align-items:baseline;gap:7px;min-width:0;line-height:1.4;display:flex}.student-course-brief strong{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;max-width:43%;font-size:10.5px;font-weight:600;overflow:hidden}.student-course-brief span{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.student-row__empty{color:var(--ink-3);font-size:10px}.course-card__summary-label>span strong{color:var(--ink)}@media (width<=980px){.module-picker__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.student-table__head{display:none}.student-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:13px 16px}.student-row__identity{grid-area:1/1}.student-row__status{grid-area:1/2;justify-self:end;display:block}.student-row__course-list{grid-area:2/1/auto/-1;padding-left:50px}.student-row__progress{grid-area:3/1/auto/-1;max-width:none;padding-left:50px;display:flex}.student-row__chevron{display:none}.module-picker__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.habit-settings{grid-template-columns:minmax(0,1fr)}.student-credentials{column-gap:12px}.student-credentials strong{max-width:150px}.course-card__modules{margin-top:4px}}@media (width<=460px){.module-picker__grid{grid-template-columns:minmax(0,1fr)}.student-row__course-list,.student-row__progress{padding-left:0}.student-credentials strong{max-width:110px}}.student-meeting__sub{min-width:0;color:var(--ink-3);align-items:center;gap:6px;font-size:8.5px;display:flex}.student-meeting__sub a{color:var(--primary);white-space:nowrap;align-items:center;gap:2px;font-weight:550;display:inline-flex}.student-meeting__sub a:hover{text-decoration:underline}.student-meeting__main>span{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:8.5px;overflow:hidden}.module-option:has(input:focus-visible){outline-offset:2px;outline:2px solid #e0a51d}.today-task{grid-template-columns:minmax(0,1fr) 112px auto}.student-row__identity,.student-header__identity{gap:0}.rail-profile{padding-left:2px}.student-meeting__time{color:var(--ink-3);grid-column:auto;align-items:center;gap:4px;font-size:8.5px;display:flex}.student-meeting__main{gap:2px}.student-meeting{grid-template-columns:minmax(0,1fr) auto}@media (width<=760px){.today-task{grid-template-columns:minmax(0,1fr) auto}.student-row__course-list,.student-row__progress{padding-left:0}}.entry-footer{width:100%;max-width:1200px;color:var(--ink-3);border-top:1px solid #e6e8e1cc;justify-content:space-between;align-items:center;gap:20px;margin:0 auto;padding:20px 36px 24px;font-size:9.5px;display:flex}.order-chip{background:var(--surface-muted);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:9px;font-weight:600;line-height:1.5;display:inline-flex}.order-chip--archived{background:var(--success-soft);color:var(--success)}.course-card__modules span{align-items:center;gap:3px;display:inline-flex}.course-card--archived{background:var(--surface-soft);box-shadow:none}.course-card--archived .course-card__header{align-items:start}.order-archived-note{background:var(--surface-muted);color:var(--ink-3);border-radius:8px;margin-top:12px;padding:8px 10px;font-size:9px;line-height:1.5}.archived-orders{margin-top:22px}.archived-orders__toggle{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink-2);text-align:left;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;font-size:11px;font-weight:600;display:flex}.archived-orders__toggle>span{align-items:center;gap:6px;display:inline-flex}.archived-orders__toggle b{background:var(--surface-muted);color:var(--ink-3);border-radius:999px;padding:1px 7px;font-size:9px;font-weight:650}.archived-orders__toggle:hover{border-color:var(--line-strong)}.archived-orders__list{margin-top:10px}.student-course--archived{background:var(--surface-soft);box-shadow:none}.portal-archived{margin-top:22px}.portal-archived .archived-orders__toggle{background:var(--surface-soft)}.student-subgrid--single{grid-template-columns:minmax(0,1fr)}.meeting-state{white-space:nowrap;border-radius:999px;align-items:center;padding:1px 7px;font-size:8.5px;font-weight:650;line-height:1.6;display:inline-flex}.meeting-state--not_started{background:var(--surface-muted);color:var(--ink-2)}.meeting-state--in_progress{background:var(--primary-soft);color:var(--primary-strong)}.meeting-state--completed{background:var(--success-soft);color:var(--success)}.meeting-state--missed{background:var(--danger-soft);color:var(--danger)}.meeting-next{border:1px solid var(--line);background:var(--surface-soft);border-radius:9px;flex-direction:column;gap:3px;margin-top:8px;padding:10px 11px;display:flex}.meeting-next__top{justify-content:space-between;align-items:center;gap:8px;display:flex}.meeting-next__eyebrow{color:var(--ink-3);letter-spacing:.02em;font-size:9px;font-weight:600}.meeting-next strong{font-size:12px;font-weight:650}.meeting-next__time{color:var(--ink-3);align-items:center;gap:4px;font-size:9px;display:inline-flex}.meeting-next p{color:var(--ink-2);margin:0;font-size:9px;line-height:1.45}.meeting-next--in_progress{background:var(--primary-softer);border-color:#c98f0e59}.meeting-next--missed{background:var(--danger-soft);border-color:#b33f3f38}.meeting-next--completed{background:var(--success-soft);border-color:#1f7a5533}.meeting-drafts{border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex}.meeting-drafts legend{padding:0 4px}.meeting-draft{grid-template-columns:minmax(0,1fr) 220px auto;align-items:end;gap:8px;display:grid}.meeting-draft .field{margin:0}@media (width<=720px){.meeting-draft{grid-template-columns:minmax(0,1fr)}.meeting-draft .icon-button{justify-self:end}}.portal-today__grid--single,.today-grid--single{grid-template-columns:minmax(0,1fr)}.order-header__meta{color:var(--ink-3);flex-wrap:wrap;gap:6px 12px;margin-top:6px;font-size:9.5px;display:flex}.order-header__meta span{align-items:center;display:inline-flex}.order-row__no{color:var(--ink-3);font-family:var(--font-mono);font-size:8px}.orphan-orders{border:1px solid var(--line);background:var(--surface-soft);border-radius:12px;margin-top:16px;padding:16px 18px}.orphan-orders__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.orphan-orders__head h2{font-size:13px;font-weight:650}.orphan-orders__head p{color:var(--ink-3);margin-top:3px;font-size:9.5px;line-height:1.5}.orphan-orders__count{background:var(--surface-muted);color:var(--ink-3);border-radius:999px;flex:none;padding:1px 8px;font-size:9px;font-weight:600}.orphan-orders__list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:12px;display:grid}.orphan-order{border:1px solid var(--line);background:var(--surface);border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;display:flex}.orphan-order strong{font-size:11.5px;font-weight:650;display:block}.orphan-order span{color:var(--ink-3);font-size:9px}.template-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}.template-card{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--shadow-card);border-radius:13px;flex-direction:column;gap:12px;padding:16px;display:flex}.template-card__header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.template-card__identity{align-items:flex-start;gap:9px;min-width:0;display:flex}.template-card__icon{background:var(--primary-soft);width:32px;height:32px;color:var(--primary-strong);border-radius:8px;flex:none;place-items:center;display:grid}.template-card__identity h2{letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:650;overflow:hidden}.template-card__identity p{color:var(--ink-3);margin-top:3px;font-size:10px}.template-card__actions{flex:none;gap:2px;display:flex}.template-card__modules{flex-wrap:wrap;gap:4px;display:flex}.template-card__modules span{background:var(--surface-muted);color:var(--ink-2);border-radius:5px;padding:3px 6px;font-size:9.5px}.template-card__meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:10px 0;display:grid}.template-card__meta dt{color:var(--ink-3);font-size:9px}.template-card__meta dd{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;font-size:10.5px;font-weight:550;overflow:hidden}.template-card__meetings{flex-direction:column;gap:5px;display:flex}.template-card__meetings span{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;font-size:9.5px;display:inline-flex;overflow:hidden}.template-picker select{cursor:pointer}@media (width<=700px){.template-grid{grid-template-columns:minmax(0,1fr)}}
