.app{--side-w:212px;--side-w-collapsed:56px;grid-template-columns:var(--side-w) minmax(0, 1fr);min-height:100vh;font-size:var(--df-text-md);transition:grid-template-columns var(--df-duration) var(--df-ease);display:grid}.app--collapsed{grid-template-columns:var(--side-w-collapsed) minmax(0, 1fr)}.side{gap:var(--df-space-5);border-right:var(--df-border);flex-direction:column;height:100vh;padding:18px 12px 12px;display:flex;position:sticky;top:0;overflow:hidden}.side__brand{align-items:center;height:24px;padding:0 8px;text-decoration:none;display:flex}.side__brand:hover{background:0 0}.side__logo{width:auto;height:15px;display:block}.side__mark{width:auto;height:14px;display:none}.app--collapsed .side__logo{display:none}.app--collapsed .side__mark{display:block}.app--collapsed .side__brand{justify-content:center;padding:0}.side__groups{gap:var(--df-space-5);flex-direction:column;display:flex}.side__group{flex-direction:column;gap:1px;display:flex}.side__title{font-family:var(--df-font-mono);letter-spacing:var(--df-tracking-mono);text-transform:uppercase;color:var(--df-grey-500);white-space:nowrap;height:19px;padding:0 8px 6px;font-size:11px}.app--collapsed .side__title{visibility:hidden;height:0;padding:0}.side__link{border-radius:var(--df-radius);cursor:pointer;width:100%;height:32px;font-family:var(--df-font-mono);font-size:var(--df-text-xs);letter-spacing:var(--df-tracking-mono);text-transform:uppercase;color:var(--df-text);white-space:nowrap;transition:background var(--df-duration-fast) var(--df-ease), color var(--df-duration-fast) var(--df-ease);background:0 0;border:0;align-items:center;gap:10px;padding:0 8px;font-weight:500;text-decoration:none;display:flex}.side__link svg{color:var(--df-grey-500);transition:color var(--df-duration-fast) var(--df-ease);flex:none}.side__link:hover{background:var(--df-highlight);color:var(--df-ink)}.side__link:hover svg{color:var(--df-ink)}.side__link[aria-current]{background:var(--df-surface-2);color:var(--df-ink)}.side__link[aria-current] svg{color:var(--df-accent)}.side__link:focus-visible{outline:2px solid var(--df-accent);outline-offset:-2px}.app--collapsed .side__link{justify-content:center;padding:0}.app--collapsed .side__label,.app--collapsed .side__user .side__label{display:none}.side__foot{border-top:var(--df-border);flex-direction:column;gap:1px;margin-top:auto;padding-top:12px;display:flex}.side__user{align-items:center;gap:10px;min-width:0;padding:0 8px 8px;display:flex}.app--collapsed .side__user{justify-content:center;padding:0 0 8px}.side__avatar{background:var(--df-ink);width:24px;height:24px;color:var(--df-soft-white);font-family:var(--df-font-mono);letter-spacing:.02em;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:10px;display:inline-flex}.side__user .side__label{flex-direction:column;min-width:0;line-height:1.2;display:flex}.side__name{font-size:var(--df-text-sm);color:var(--df-ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.side__role{font-family:var(--df-font-mono);letter-spacing:var(--df-tracking-mono);text-transform:uppercase;color:var(--df-grey-500);font-size:10px}.main{min-width:0;max-width:1400px;padding:20px 28px 64px}.topbar{display:none}@media (width<=900px){.app,.app--collapsed{grid-template-columns:1fr}.side{display:none}.topbar{z-index:5;border-bottom:var(--df-border);background:var(--df-soft-white);align-items:center;gap:4px;padding:8px 12px;display:flex;position:sticky;top:0;overflow-x:auto}.topbar>a:first-child{margin-right:auto;padding:0 4px;display:flex}.topbar>a:first-child img{height:14px}.topbar .side__link{justify-content:center;width:36px;padding:0}.main{padding:16px 16px 48px}}.app h1{letter-spacing:var(--df-tracking-display);color:var(--df-text-display);max-width:none;margin:0;font-size:28px;line-height:1.1}.app .df-eyebrow{margin-bottom:6px;font-size:11px}.app .df-eyebrow a{font-size:inherit}.app p{font-size:var(--df-text-md)}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--df-space-4);flex-wrap:wrap;margin-bottom:20px;display:flex}.page-head .row{gap:var(--df-space-4)}.app .df-card{padding:16px 20px}.card-head{justify-content:space-between;align-items:baseline;gap:var(--df-space-4);margin-bottom:8px;display:flex}.card-head h2,.app .df-card h2{font-family:var(--df-font-mono);font-size:var(--df-text-xs);letter-spacing:var(--df-tracking-mono);text-transform:uppercase;color:var(--df-ink);margin:0;font-weight:500;line-height:1.3}.card-head__meta{font-family:var(--df-font-mono);letter-spacing:var(--df-tracking-mono);text-transform:uppercase;color:var(--df-grey-500);font-size:11px}.grid-stats{background:var(--df-hairline);border:var(--df-border);border-radius:var(--df-radius);grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:16px;display:grid;overflow:hidden}.grid-stats .df-stat{background:var(--df-surface);gap:4px;padding:12px 16px}.grid-stats .df-stat__label{color:var(--df-grey-500);margin:0;font-size:11px}.grid-stats .df-stat__value{font-size:24px;line-height:1.15}.grid-stats .df-stat__delta{font-size:11px}.app .df-table{font-size:var(--df-text-sm)}.app .df-table th{color:var(--df-grey-500);padding:6px 10px;font-size:11px}.app .df-table td{padding:8px 10px}.app .df-table td .sub{color:var(--df-text-secondary);font-size:12px;display:block}.app .df-btn{min-height:34px;font-size:var(--df-text-xs);padding:6px 14px}.app .df-btn--quiet{min-height:0;padding:6px 0}.app .df-btn--sm{min-height:28px;padding:4px 10px}.app .df-input,.app .df-select,.app .df-textarea{min-height:36px;font-size:var(--df-text-sm);padding:7px 10px}.app .df-field{margin-bottom:14px}.app label.df-label{margin-bottom:6px;font-size:11px}.app .df-field__hint{margin-top:6px;font-size:12px}.app .df-badge{padding:4px 6px;font-size:10px}.app .df-divider{margin:16px 0}.grid-2{grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);align-items:start;gap:16px;display:grid}.stack{flex-direction:column;gap:16px;display:flex}.row{gap:var(--df-space-3);flex-wrap:wrap;align-items:center;display:flex}.spread{justify-content:space-between;align-items:center;gap:var(--df-space-4);flex-wrap:wrap;display:flex}.empty{text-align:center;color:var(--df-text-secondary);padding:32px 16px}.empty p{margin-left:auto;margin-right:auto}.empty h2{margin-bottom:8px!important}.error-text{color:var(--df-critical);font-size:var(--df-text-sm)}.clip{text-overflow:ellipsis;white-space:nowrap;max-width:34ch;overflow:hidden}.small{font-size:var(--df-text-sm)}.muted{color:var(--df-grey-500)}.mono-meta{font-family:var(--df-font-mono);letter-spacing:var(--df-tracking-mono);text-transform:uppercase;color:var(--df-grey-500);font-size:11px}.nowrap{white-space:nowrap}.df-select{appearance:auto}.df-textarea{resize:vertical;min-height:96px;line-height:var(--df-leading-body)}.df-textarea.mono{font-family:var(--df-font-mono);font-size:12px}.check{min-height:32px;font-size:var(--df-text-sm);cursor:pointer;align-items:center;gap:10px;display:flex}.check input{width:16px;height:16px;accent-color:var(--df-accent)}.form-grid{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.table-wrap{overflow-x:auto}@media (width<=1100px){.grid-stats{grid-template-columns:1fr 1fr}.grid-2,.form-grid{grid-template-columns:1fr}}.kv{flex-direction:column;margin:0;display:flex}.kv>div{font-size:var(--df-text-sm);align-items:baseline;gap:8px;padding:7px 0;display:flex}.kv dt{font-family:var(--df-font-mono);letter-spacing:var(--df-tracking-mono);text-transform:uppercase;color:var(--df-grey-500);white-space:nowrap;font-size:11px}.kv>div:after{content:none}.kv .lead{border-bottom:1px dotted var(--df-hairline-strong);flex:1;min-width:12px;transform:translateY(-3px)}.kv dd{text-align:right;color:var(--df-ink);margin:0}.auth{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.auth__panel{background:var(--df-ink);padding:32px 40px;position:relative;overflow:hidden}.auth__panel .logo{z-index:1;position:relative}.auth__figure{width:100%;height:100%;display:block;position:absolute;inset:0}.auth__panel img.logo{align-self:flex-start;width:auto;height:20px}.auth__form{justify-content:center;align-items:center;padding:40px 24px;display:flex}.auth__form>div{width:100%;max-width:360px}.auth__form h2{margin-bottom:20px;font-size:28px}.auth__form .df-field{margin-bottom:14px}.auth__form .df-input{min-height:40px;font-size:var(--df-text-md)}.auth__form .df-btn{min-height:40px}.auth__divider{align-items:center;gap:var(--df-space-3);color:var(--df-grey-500);margin:18px 0;display:flex}.auth__divider:before,.auth__divider:after{content:"";border-top:var(--df-border);flex:1}@media (width<=900px){.auth{grid-template-columns:1fr}.auth__panel{min-height:220px;padding:20px}}.work{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;display:grid}.work .df-card{padding:20px 24px}.app .work__passage{color:var(--df-ink);white-space:pre-wrap;max-width:36em;margin:0;font-size:22px;line-height:1.35}.work__context{color:var(--df-text-secondary);font-size:var(--df-text-sm);white-space:pre-wrap;margin-bottom:12px}.work__bar{justify-content:space-between;align-items:center;gap:var(--df-space-4);border-top:var(--df-border);flex-wrap:wrap;margin-top:16px;padding-top:16px;display:flex}.work__instructions{font-size:var(--df-text-sm);white-space:pre-wrap;color:var(--df-text);line-height:1.45}.work__question{font-family:var(--df-font-mono);letter-spacing:var(--df-tracking-mono);text-transform:uppercase;color:var(--df-ink);margin-bottom:10px;font-size:11px;display:block}@media (width<=1100px){.work{grid-template-columns:1fr}}.choices{flex-direction:column;gap:6px;margin:0 0 16px;display:flex}.choice{background:var(--df-surface);border:var(--df-border);border-radius:var(--df-radius);text-align:left;cursor:pointer;width:100%;min-height:40px;font:inherit;color:var(--df-text);transition:background var(--df-duration-fast) var(--df-ease), border-color var(--df-duration-fast) var(--df-ease);grid-template-columns:24px 1fr;align-items:center;gap:12px;padding:6px 12px;display:grid}.choice:hover{background:var(--df-highlight);color:var(--df-ink)}.choice:focus-visible{outline:2px solid var(--df-accent);outline-offset:2px}.choice kbd{border:var(--df-border);border-radius:var(--df-radius);width:22px;height:22px;color:var(--df-grey-500);background:var(--df-soft-white);justify-content:center;align-items:center;font-size:11px;display:inline-flex}.choice__label{font-size:var(--df-text-md)}.choice__hint{font-size:var(--df-text-sm);color:var(--df-text-secondary);margin-left:8px}.choice[aria-pressed=true]{border-color:var(--df-accent);color:var(--df-ink);background:#eef3fd}.choice[aria-pressed=true] kbd{background:var(--df-accent);color:var(--df-text-on-accent);border-color:var(--df-accent)}.review-item{grid-template-columns:minmax(0,1fr) 260px;gap:20px;display:grid}.app .review-item .work__passage{font-size:17px}.review-item__side{border-left:var(--df-border);padding-left:20px}@media (width<=1100px){.review-item{grid-template-columns:1fr}.review-item__side{border-left:0;padding-left:0}}.toast{background:var(--df-ink);color:var(--df-soft-white);border-radius:var(--df-radius);font-family:var(--df-font-mono);letter-spacing:var(--df-tracking-mono);text-transform:uppercase;z-index:10;padding:10px 16px;font-size:11px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}a.df-btn{color:var(--df-text-on-accent)}a.df-btn--ghost,a.df-btn--quiet{color:var(--df-accent)}a.df-btn:hover{color:var(--df-text-on-accent)}a.df-btn--ghost:hover{color:var(--df-ink)}.app .df-table a.df-btn{font-family:var(--df-font-mono);text-transform:uppercase;letter-spacing:var(--df-tracking-mono);font-size:11px}.row-link{cursor:pointer}.app .df-table a.row-link__title{color:var(--df-ink);text-decoration:none}.app .df-table a.row-link__title:hover{background:0 0}.app .df-table .row-link:hover a.row-link__title{text-underline-offset:3px;text-decoration:underline}.row-link__cta{color:var(--df-accent)}.preview-chip{border-radius:var(--df-radius);background:var(--df-warn-bg);color:var(--df-warn);font-family:var(--df-font-mono);letter-spacing:var(--df-tracking-mono);text-transform:uppercase;white-space:nowrap;align-self:flex-start;margin:-8px 8px 0;padding:3px 6px;font-size:10px}.app--collapsed .preview-chip{margin:-8px auto 0}.preview-note{border:1px solid var(--df-warn-bg);border-radius:var(--df-radius);background:#fbf4ea;margin-bottom:18px;padding:10px 12px}.preview-note p{font-size:var(--df-text-sm);margin:6px 0 0}.preview-note code{font-size:12px}
