:root{--paper:#f5f5ef;--white:#fff;--ink:#243c35;--muted:#4f625a;--green:#275d49;--mint:#e9f0e6;--line:#d4dcd1;--blue:#345f86;--pale-blue:#edf3f8;--amber:#88501d;--pale-amber:#fff4e6;--red:#9a372a;--purple:#5b4a86;--pale-purple:#f1eef8;--radius:8px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.72 BIZ UDPGothic,Yu Gothic,Meiryo,system-ui,sans-serif;font-weight:500}button,a.button{font:inherit;color:inherit;text-decoration:none;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:5px;background:#fff;padding:8px 14px;font-weight:700;font-size:.96rem}button:hover,a.button:hover{background:var(--mint);border-color:#8fa592}button[aria-pressed=true]{background:var(--green);color:#fff;border-color:var(--green)}a.button:not(.secondary){border-color:var(--green);background:var(--green);color:#fff}a.button:not(.secondary):hover{background:#173f32}a.button.secondary{background:transparent;border-color:var(--line)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:800;line-height:1.45}h1{font-size:26px}h2{font-size:19px}h3{font-size:15px}small,.small{font-size:.9rem}.muted{color:var(--muted);font-weight:500}.flex{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.skip-link{position:fixed;z-index:100;top:8px;left:8px;padding:10px 16px;color:#fff;background:#173f32;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}main{max-width:1200px;margin:auto;padding:24px 22px 60px;min-width:0}.topbar{border-bottom:1px solid var(--line);background:#fafbf7;padding:16px 22px}.topbar-inner{max-width:1200px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.topbar-inner>*{min-width:0;max-width:100%}.topbar-inner .button{white-space:normal;overflow-wrap:anywhere;text-align:center;line-height:1.4}.brand{font:700 20px system-ui,sans-serif}.brand small{display:block;font:500 11px system-ui;color:var(--muted);margin-top:2px}.demo-banner{background:var(--pale-amber);border-bottom:1px solid #e0be8a;padding:10px 22px;font-size:.95rem;color:var(--amber);text-align:center}.demo-banner b{color:var(--red)}:focus-visible{outline:3px solid #345f86;outline-offset:2px;border-radius:5px}.disclaimer{background:var(--pale-amber);border-left:3px solid var(--amber);padding:12px 16px;font-size:.95rem;margin-bottom:8px}.disclaimer strong{color:var(--amber)}.scope-note{background:var(--pale-blue);border-left:3px solid var(--blue);padding:10px 16px;font-size:.86rem;color:#345676;margin-bottom:20px}.eyebrow{margin:0 0 6px;color:var(--green);font-size:.78rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);max-width:1200px;margin:0 auto}.sidebar{padding:8px 16px 24px;border-right:1px solid var(--line)}.sidebar-label{margin:0 8px 8px;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.nav-list{margin:0;padding:0;list-style:none}.nav-link{min-height:44px;display:flex;align-items:center;gap:10px;margin:2px 0;padding:8px 10px;color:var(--ink);border-radius:8px;text-decoration:none;font-weight:700}.nav-link:hover{background:var(--mint)}.nav-link[aria-current=page]{color:#fff;background:var(--green)}.nav-icon{width:1.5em;text-align:center}.nav-pending-badge{margin-left:6px;padding:1px 6px;border-radius:999px;background:var(--pale-amber);color:var(--amber);font-size:.7rem;font-weight:800}.sidebar-note{margin-top:20px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-size:.8rem}.sidebar-secondary-nav{margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}.sidebar-directory-note{margin:2px 8px 0;color:var(--muted);font-size:.75rem;line-height:1.5}.mobile-nav{display:none}@media(max-width:820px){.app-shell{display:block}.sidebar{display:none}main{padding-bottom:150px}.mobile-nav{position:fixed;z-index:30;right:8px;bottom:max(8px,env(safe-area-inset-bottom));left:8px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:7px;border:1px solid var(--line);border-radius:16px;background:#fafbf7fa;box-shadow:0 10px 38px #14302733}.mobile-nav a{min-width:0;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 3px;color:var(--muted);border-radius:10px;text-decoration:none;font-size:.75rem;line-height:1.25;font-weight:900;overflow-wrap:anywhere;text-align:center}.mobile-nav a[aria-current=page]{color:#fff;background:var(--green)}}@media(max-width:360px){.mobile-nav a{font-size:.7rem;gap:1px}}.card{padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.grid{display:grid;gap:16px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:1050px){.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.grid.three{grid-template-columns:1fr}}.action-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.action-card .button{margin-top:auto}.status{min-height:26px;display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border:1px solid currentColor;border-radius:999px;background:#fff;font-size:.78rem;font-weight:800;white-space:nowrap}.status.ok{color:var(--green);background:var(--mint)}.status.bad{color:var(--amber);background:var(--pale-amber)}.status.unknown{color:var(--purple);background:var(--pale-purple)}.status.info{color:var(--blue);background:var(--pale-blue)}.notice{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;padding:13px 16px;border:1px solid var(--blue);border-radius:12px;background:var(--pale-blue);color:#23485c;font-size:.95rem}.notice.info{border-color:var(--blue)}.notice strong{display:block}.section{margin-top:32px}.dashboard-detail-hint{margin-top:20px}.purpose-toggle{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap}.purpose-section{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:18px}.purpose-section.purpose-promotion{border-top:4px solid var(--purple)}.purpose-section.purpose-graduation{border-top:4px solid var(--green)}.purpose-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px;flex-wrap:wrap}.purpose-badge{font-size:12px;font-weight:600;padding:3px 9px;border-radius:3px}.purpose-badge.purpose-promotion{background:var(--pale-purple);color:var(--purple)}.purpose-badge.purpose-graduation{background:var(--mint);color:var(--green)}.source-line{font-size:12px;color:var(--muted);margin-top:4px}.curriculum-sources{margin:12px 0}.curriculum-sources-meta{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:8px 0}.curriculum-sources-meta dd{margin:0}.curriculum-sources .revision-id,.curriculum-sources-list a{overflow-wrap:anywhere}.curriculum-sources-list{margin:8px 0;padding-left:18px}.condition-source-ref{font-size:12px;overflow-wrap:anywhere}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-block:1px solid var(--line);margin:16px 0}.metric{padding:12px 18px;border-left:1px solid var(--line)}.metric:first-child{border-left:0;padding-left:0}.metric span{display:block;font-size:12px;color:var(--muted)}.metric b{font:600 26px system-ui,sans-serif}.metric.deficit b{color:var(--amber)}.metric.ok b{color:var(--green)}.category-row{border-bottom:1px solid var(--line);padding:12px 0}.category-row:last-child{border:0}.category-row .name{font-weight:600;font-size:14px}.category-row .nums{font-size:13px;color:var(--muted)}.category-row .progress-line{height:6px;background:#e5e9df;margin-top:6px;max-width:220px;border-radius:3px;overflow:hidden}.category-row .progress-line i{height:100%;display:block;background:var(--green)}.category-row.category-state-unsatisfied .progress-line i{background:var(--amber)}.tag{display:inline-flex;gap:4px;align-items:center;font-size:11px;padding:2px 7px;border:1px solid var(--line);border-radius:3px;white-space:nowrap;background:#fff}.tag.state-satisfied{background:var(--mint);border-color:#c9d9c4;color:#27523f}.tag.state-unsatisfied{background:var(--pale-amber);border-color:#e0c193;color:var(--amber)}.tag.state-indeterminate{background:#f6f0f0;border-color:#e3cccc;color:var(--red)}.tag.credit-completed{background:var(--mint);border-color:#c9d9c4;color:#27523f}.tag.credit-in-progress{background:var(--pale-blue);border-color:#cbd9e8;color:#345676}.tag.credit-planned{background:#f6efe3;border-color:#e0c99a;color:var(--amber)}.tag.credit-capped{background:#f6f0f0;border-color:#e3cccc;color:var(--red)}.credits-breakdown{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.missing-list,.indeterminate-list{margin:8px 0 0;padding-left:18px;font-size:13px}.missing-list{color:var(--amber)}.indeterminate-list{color:var(--red)}.category-row.category-state-indeterminate{background:#fdfafa}.overall-block{border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);padding:14px 0;margin:14px 0}.overall-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.overall-head h3{font-size:15px}.condition-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.condition-row{display:flex;align-items:start;gap:8px;font-size:13px}.selection-groups{border-top:1px dashed var(--line);padding-top:14px;margin-top:14px}.selection-groups h3{font-size:15px;margin-bottom:8px}.selection-group-row{border-bottom:1px solid var(--line);padding:10px 0}.selection-group-row .name{font-weight:600;font-size:14px}.selection-group-row .nums{font-size:13px;color:var(--muted);margin-top:2px}.pending-callout{background:#f6f0f0;border-left:3px solid var(--red);padding:12px 14px;font-size:13px;margin-top:14px}.pending-list{margin:8px 0 0;padding-left:18px;font-size:13px}.evidence-note{font-size:12px;color:var(--muted);margin-top:14px;border-top:1px dashed var(--line);padding-top:10px;overflow-wrap:anywhere;word-break:break-word}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th{font-size:12px;font-weight:500;color:var(--muted);white-space:nowrap;background:#fafbf7}td,th{padding:11px 12px;border-bottom:1px solid var(--line)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.catalog-filter{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}.catalog-filter select,.catalog-filter input{min-height:40px;border:1px solid #acb8ad;border-radius:4px;padding:6px 10px;background:#fff}.section-title{margin:26px 0 12px;font-size:17px}.callout{background:var(--mint);padding:12px 16px;border-left:3px solid var(--green);font-size:13px;margin-bottom:14px}.empty{padding:20px;text-align:center;color:var(--muted)}.footer{max-width:1156px;margin:36px auto 0;border-top:1px solid var(--line);padding:16px 0 60px;font-size:12px;color:var(--muted)}.footer-links{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:6px}.demo-banner a{color:inherit;text-decoration:underline}.about-facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}.about-facts dt{font-weight:600}.about-facts dd{margin:0;min-width:0}.revision-id{word-break:break-all;font-size:12px}#curriculum-data a,#licenses a{overflow-wrap:anywhere;word-break:break-word}@media(max-width:640px){.about-facts{grid-template-columns:1fr}.about-facts dd{margin-bottom:8px}}.summary-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0 28px}.summary-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px}.summary-card-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px}.summary-card-heading h2{margin:0;min-width:0;overflow-wrap:anywhere}.summary-card-heading .tag{flex-shrink:0;font-size:1.1rem;font-weight:900;line-height:1.4;padding:6px 12px}.summary-card-reason,.summary-card-reasons{margin:14px 0 0;line-height:1.55;overflow-wrap:anywhere}.summary-card-reasons>strong{display:block}.summary-card-reasons ul{margin:5px 0 0;padding-left:1.5em}.summary-card-reasons li{margin:3px 0}.summary-card-progress{margin:18px 0 12px;min-width:0}.summary-card-progress-label{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 16px}.summary-card-progress-label strong{font-size:1.25rem;line-height:1.45;font-variant-numeric:tabular-nums}.summary-card-units{white-space:nowrap}.summary-card-counted{font-size:.78rem;font-weight:500;white-space:normal}.summary-card-bar{height:12px;margin:9px 0 4px;background:#e5e9df;border-radius:999px;overflow:hidden}.summary-card-bar>span{display:block;height:100%;background:var(--purple);border-radius:inherit}.summary-card-progress .small{margin:6px 0 0;line-height:1.5}.summary-card-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0 0}.summary-card-totals>div{min-width:0;padding:9px 10px;background:#f7f9f5;border-radius:6px}.summary-card-totals dt{font-size:.84rem;color:var(--muted)}.summary-card-totals dd{margin:3px 0 0;font-weight:700;font-variant-numeric:tabular-nums}.progress-overview{margin:18px 0 26px}.progress-overview>h2{margin-bottom:10px}.progress-overview .summary-cards{grid-template-columns:1fr;margin:0 0 14px}.progress-sources-details,.progress-outcome-details{margin:12px 0;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.progress-sources-details>summary,.progress-outcome-details>summary{min-height:48px;padding:11px 16px;cursor:pointer;font-weight:800;list-style-position:inside}.progress-outcome-details[open]>summary,.progress-sources-details[open]>summary{border-bottom:1px solid var(--line);background:#f9faf6}.progress-outcome-content{padding:14px 16px 18px}.progress-sources-details .curriculum-sources{margin:12px;border:0;padding:8px}.progress-outcome-details table{min-width:640px}.first-use-guide{margin:16px 0}.first-use-guide ol{margin:10px 0;padding-left:24px}.first-use-guide li{padding:2px 0}.first-use-scope{margin-top:10px;border-radius:4px}@media(max-width:650px){.progress-overview .summary-card{padding:15px}.summary-card-totals{grid-template-columns:1fr 1fr}.progress-outcome-content{padding:10px}.progress-outcome-details table{min-width:590px}.progress-overview .grid.three{grid-template-columns:1fr}.bulk-term .button-row>*{flex:1 1 100%;min-width:0}}.button.danger{color:var(--red);border-color:var(--red);background:transparent}.button.danger:hover{background:var(--pale-amber)}.button-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}.profile-card{display:flex;flex-direction:column}.profile-meta{margin:8px 0 0;padding:0;list-style:none;color:var(--muted);font-size:.88rem}.field{margin-top:14px}.field label{display:block;margin-bottom:5px;font-size:.88rem;font-weight:700}.input{width:100%;min-height:44px;padding:9px 12px;border:1px solid #87958f;border-radius:6px;color:var(--ink);background:#fff;font:inherit}.field-error{min-height:1.4em;margin:6px 0 0;color:var(--red);font-size:.86rem;font-weight:700}@media(max-width:650px){main{padding:0 14px 40px}.topbar{padding:12px 14px}.demo-banner{padding:8px 14px;font-size:12px}nav.primary-nav button{padding:10px;font-size:13px}.metrics{grid-template-columns:1fr 1fr}.metric:nth-child(2){border-left:1px solid var(--line)}.metric:nth-child(3){border-left:0;border-top:1px solid var(--line);padding-top:12px;grid-column:1/-1}table{font-size:13px}td,th{padding:9px 7px}h1{font-size:22px}.footer{margin-top:28px;padding:14px 14px 40px}.summary-cards{grid-template-columns:1fr}}.import-review{display:grid;gap:16px}.import-steps{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:10px 0 0}.import-steps li{border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:.9rem;color:var(--muted);background:var(--white)}.import-steps li.current{border-color:var(--green);background:var(--mint);color:var(--ink);font-weight:800}.notice.warn{border-color:#d9b98a;background:var(--pale-amber);color:var(--ink)}.notice.warn strong,.notice.info strong{display:block}.no-assessment .status{margin-right:6px}.import-summary{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--line);border-radius:999px;padding:2px 10px;background:var(--white);font-size:.9rem}.import-candidates{display:grid;gap:14px}.import-candidate{display:grid;gap:10px}.import-candidate-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}.state-chip{border-radius:999px;padding:2px 10px;font-size:.85rem;font-weight:800;background:var(--pale-blue);color:var(--blue)}.state-chip.state-ready{background:var(--mint);color:var(--green)}.state-chip.state-saved{background:var(--green);color:#fff}.state-chip.state-save-failed{background:#fbe9e6;color:var(--red)}.state-chip.state-on-hold{background:var(--pale-amber);color:var(--amber)}.state-chip.state-excluded{background:#eee;color:var(--muted)}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;min-width:0}.fields .field{display:grid;align-content:start;gap:4px;min-width:0;margin-top:0}.fields input,.fields select,.match input.search,.file-picker input,.bulk-term select{display:block;box-sizing:border-box;min-width:0;max-width:100%;font:inherit;line-height:1.4;min-height:46px;border:1px solid var(--line);border-radius:5px;padding:8px 10px;background:#fff;width:100%}.fields .field>*,.import-candidate,.match,.compare dt,.compare dd{min-width:0;overflow-wrap:anywhere}.fields .field>label{margin:0}.fields .muted,.field-error{line-height:1.45;overflow-wrap:anywhere}.fields [aria-invalid=true]{border-color:var(--red)}.field-error{color:var(--red);font-size:.9rem}.match{border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;display:grid;gap:8px;margin:0}.match legend{font-weight:800;padding:0 4px}.match-status{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.compare{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:4px 12px;margin:0}.compare dt{color:var(--muted)}.compare dd{margin:0;font-weight:700}.opt{display:flex;gap:8px;align-items:flex-start;padding:6px 8px;border:1px solid var(--line);border-radius:5px;background:#fff}.opt input{margin-top:6px;min-width:18px;min-height:18px}.flag{display:block;color:var(--amber);font-size:.9rem}.ack{display:flex;gap:8px;align-items:center;margin-top:6px;font-weight:700}.save-as{background:var(--pale-blue);border-radius:5px;padding:8px 12px}.save-as-title{display:block;overflow-wrap:anywhere}.sug-group{display:grid;gap:6px}.sug-head{font-size:.86rem;font-weight:800;color:var(--muted)}.sug-reasons{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.sug-reason{font-size:.78rem;padding:0 6px;border-radius:3px;border:1px solid #cbd9e8;background:var(--pale-blue);color:#345676;white-space:nowrap}.sug-reason.exact{border-color:#c9d9c4;background:var(--mint);color:#27523f}.sug-reason.credit{border-color:#e0c99a;background:#f6efe3;color:var(--amber)}.sug-empty{font-size:.88rem;color:var(--muted)}.opt>span{min-width:0;overflow-wrap:anywhere}.actions{display:flex;flex-wrap:wrap;gap:8px}.actions>*{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.4}button.danger{border-color:#d7a79f;color:var(--red)}button.small{min-height:36px;padding:4px 10px;font-size:.88rem}button[aria-disabled=true]{opacity:.55;cursor:not-allowed}.footer-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.file-picker{display:grid;gap:6px;margin-top:10px;max-width:420px;font-weight:700}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e1a73;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.dialog{max-width:480px;width:100%;display:grid;gap:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:600px){.compare{grid-template-columns:minmax(0,1fr)}.actions button{flex:1 1 100%}}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin:6px 0 14px}.page-head .lead{margin-top:4px;max-width:44em}.data-note{margin-bottom:14px}.controls{display:flex;align-items:center;gap:14px 20px;flex-wrap:wrap;margin-bottom:14px}.toggle-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.toggle-label{font-size:.86rem;font-weight:800;color:var(--muted);margin-right:2px}.toggle-group button{min-width:60px}.ctl-field{display:flex;align-items:center;gap:8px;font-size:.86rem;font-weight:800;color:var(--muted)}.ctl-field select,.ctl-field input{min-height:44px;border:1px solid #87958f;border-radius:6px;padding:6px 10px;background:#fff;font:inherit;color:var(--ink);font-weight:500}.ctl-field input{min-width:13em}.sem-toggle{display:none}.cal-card{padding:0;overflow:hidden}.cal-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line)}.pcal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#fff}.pcal>*{min-width:0}.sem-head{grid-row:1;padding:9px 12px 3px;text-align:center;font-weight:800;border-bottom:2px solid var(--green);margin:0 8px}.term-head{grid-row:2;padding:7px 10px;text-align:center;font-size:.88rem;font-weight:800;color:var(--muted);background:#fafbf7;border-bottom:1px solid var(--line);border-left:1px solid var(--line)}.c1{grid-column:1}.c2{grid-column:2}.c3{grid-column:3}.c4{grid-column:4}.term-head.c1,.term-col.c1{border-left:0}.span-first{grid-column:1/3}.span-second{grid-column:3/5}.span-all{grid-column:1/5}.row-all{grid-row:3;padding:9px 10px 3px;border-bottom:1px dashed var(--line)}.row-sem{grid-row:4;padding:9px 10px 3px;border-bottom:1px dashed var(--line)}.row-sem.span-second{border-left:1px solid var(--line)}.term-col.compact{min-height:0}.term-col{grid-row:5;padding:9px;min-height:150px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:7px}.area-caption{font-size:.76rem;font-weight:800;color:var(--muted);margin:0 2px 6px;line-height:1.5}.chip-btn{display:block;width:100%;text-align:left;min-height:44px;padding:7px 10px;border:1px solid var(--line);border-left:5px solid #b9c5bb;border-radius:6px;background:#fff;font-weight:500;line-height:1.45}.chip-btn:hover{background:#f7faf5}.chip-btn .t{display:block;font-weight:800;font-size:.93rem;overflow-wrap:anywhere}.chip-btn .m{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:3px;font-size:.8rem;color:var(--muted)}.chip-btn.has-completed{border-left-color:var(--green)}.chip-btn.has-in-progress{border-left-color:var(--blue)}.chip-btn.has-planned{border-left-color:var(--amber);border-left-style:dashed}.chip-btn.official-lane{border-style:dashed;border-left-style:dashed}.band{margin:0 0 7px;background:repeating-linear-gradient(90deg,#fff 0,#fff 12px,#f5f8f2 12px,#f5f8f2 24px)}.band .chip-btn{display:flex;align-items:center;justify-content:space-between;gap:3px 12px;flex-wrap:wrap}.band .chip-btn .m{margin-top:0}.span-note{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);font-weight:700;line-height:1.4;margin-top:1px}.span-note span:first-child:before{content:"◀ "}.span-note span:last-child:after{content:" ▶"}.st{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border:1px solid;border-radius:999px;font-size:.78rem;font-weight:800;background:#fff;white-space:nowrap}.st .sym{font-family:Segoe UI Symbol,"Noto Sans Symbols 2",Noto Sans Symbols,sans-serif;font-size:1.1em;line-height:1}.st.completed{color:#27523f;background:var(--mint);border-color:#c9d9c4}.st.in-progress{color:#345676;background:var(--pale-blue);border-color:#cbd9e8}.st.planned{color:var(--amber);background:#f6efe3;border-color:#e0c99a}.badge{display:inline-flex;align-items:center;padding:1px 7px;border-radius:4px;font-size:.74rem;font-weight:800;border:1px solid var(--line);background:#fff;color:var(--muted);white-space:nowrap}.badge.manual{color:var(--purple);border-color:#cfc6e6;background:var(--pale-purple)}.badge.demo{color:#3d3160;border-color:#b8acd9;background:var(--pale-purple)}.mine{font-size:.78rem;color:var(--ink);font-weight:700}.empty-col{color:var(--muted);font-size:.84rem;margin:2px}.legend{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:10px 16px;border-top:1px solid var(--line);font-size:.84rem;color:var(--muted)}.sample{display:inline-block;width:40px;height:14px;border:1px solid var(--line);border-radius:3px;vertical-align:middle;margin-right:4px}.sample.band-s{background:repeating-linear-gradient(90deg,#fff 0,#fff 6px,#eef2ea 6px,#eef2ea 12px)}.sample.lane-s{border-style:dashed;background:#fff}.sub-card{margin-top:16px}.chip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:10px}.hint{font-size:.84rem;color:var(--muted)}.inline-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.link-btn{min-height:40px;border-style:dashed;color:var(--green);background:transparent;font-size:.88rem}.tt-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.tt-layout>.side{grid-column:1/-1;grid-row:2}.section-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-toggle h2{margin:0}.cell-add-panel{position:sticky;top:12px;margin-bottom:16px}.filter-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.filter-actions button[aria-pressed=true]{border-color:var(--green);background:var(--mint);color:var(--green)}.tt-main{min-width:0}.week{display:grid;grid-template-columns:42px repeat(5,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden;position:relative}.week .wh{padding:7px 4px;text-align:center;font-weight:800;font-size:.9rem;background:#fafbf7;border-bottom:1px solid var(--line);border-left:1px solid var(--line)}.week .wh:first-child{border-left:0}.week .ws{display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--muted);font-size:.88rem;border-bottom:1px solid var(--line);background:#fafbf7}.week .wc{min-height:96px;padding:5px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:5px;min-width:0}.week .last{border-bottom:0}.blk{display:block;width:100%;text-align:left;min-height:44px;padding:5px 7px;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:5px;background:#fff;font-weight:500;line-height:1.35}.blk .t{display:block;font-weight:800;font-size:.84rem;overflow-wrap:anywhere}.blk .m{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px;font-size:.72rem;color:var(--muted)}.blk.has-in-progress{border-left-color:var(--blue)}.blk.has-planned{border-left-color:var(--amber);border-left-style:dashed}.blk .st{font-size:.7rem;padding:0 5px}.term-tag{display:inline-block;padding:0 5px;border-radius:3px;background:#eef2ea;color:var(--ink);font-weight:800;font-size:.7rem}.overlap{font-size:.72rem;color:var(--amber);font-weight:800}.slot-find{min-height:36px;width:100%;padding:3px 4px;border:1px dashed #b8c7b5;background:#fafcf7;color:var(--green);font-size:.74rem;font-weight:700;margin-top:auto}.week-empty-note{position:absolute;left:50%;top:58%;transform:translate(-50%,-50%);width:min(88%,460px);padding:12px 14px;border:1px solid var(--blue);border-radius:10px;background:#edf3f8f7;color:#23485c;font-size:.9rem;text-align:center}.tt-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:8px 2px 0;font-size:.82rem;color:var(--muted)}.outside{margin-top:16px}.outside h3{margin-top:12px}.outside h3:first-of-type{margin-top:4px}.side{position:sticky;top:10px}.side .card{padding:14px}.cand-list{display:grid;gap:7px;margin:10px 0 0;padding:0;list-style:none;max-height:640px;overflow:auto}.cand{border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:#fff}.cand[aria-current=true]{outline:2px solid var(--green)}.cand .t{font-weight:800;font-size:.92rem;overflow-wrap:anywhere}.cand .m{font-size:.78rem;color:var(--muted);margin-top:2px;line-height:1.5}.cand .inline-actions{margin-top:6px}.cand .inline-actions button{min-height:36px;padding:3px 10px;font-size:.84rem}.filter-pill{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;margin-top:8px;border-radius:6px;background:var(--mint);font-size:.84rem;font-weight:700}.filter-pill button{min-height:32px;padding:2px 8px;font-size:.8rem}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e1a59;z-index:48}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);z-index:49;background:#fff;border-left:1px solid var(--line);box-shadow:-10px 0 30px #1430272e;padding:18px;overflow:auto}.dialog{max-height:calc(100vh - 32px);overflow:auto}.dh{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:6px}.dh button{min-width:44px;padding:4px}.dl{display:grid;grid-template-columns:max-content 1fr;gap:5px 14px;margin:6px 0}.dl dt{color:var(--muted);font-size:.88rem}.dl dd{margin:0;font-weight:700;min-width:0;overflow-wrap:anywhere}.box{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-top:10px}.box h3{margin-bottom:4px}.box.official{background:#fafbf7}.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}select.input{padding-right:8px}.status-options{display:grid;gap:6px;margin-top:4px}.status-options label{display:flex;align-items:center;gap:8px;min-height:40px;padding:4px 10px;border:1px solid var(--line);border-radius:5px;font-weight:700}.status-options input{width:18px;height:18px}fieldset.req{border:0;padding:0;margin:12px 0 0}fieldset.req legend{font-weight:700;font-size:.88rem}fieldset.req[aria-invalid=true] .status-options label{border-color:var(--red)}.err{color:var(--red);font-weight:800;font-size:.88rem;margin-top:6px}.proposal{border:1px dashed var(--purple);border-radius:8px;padding:8px 10px;margin-top:12px;background:var(--pale-purple)}.proposal legend{font-size:.84rem;font-weight:800;color:var(--purple)}.primary-btn{background:var(--green);color:#fff;border-color:var(--green)}.primary-btn:hover{background:#173f32}.toast{margin-bottom:14px}.mtabs,.day-tabs,.agenda,.agenda-empty-note{display:none}@media(max-width:1100px){.tt-layout{grid-template-columns:minmax(0,1fr) 260px}}@media(max-width:820px){.footer{padding-bottom:170px}.tt-layout{display:block}.side{position:static}.mtabs{display:flex;gap:4px;margin:0 0 12px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;background:var(--paper)}.mtabs button{flex:1;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent}.mtabs button[aria-selected=true]{border-bottom-color:var(--green);color:var(--green);background:transparent}.tt-pane{display:none}.tt-pane.active{display:block}.week,.tt-legend.grid-only{display:none}.day-tabs{display:flex;gap:4px;margin-bottom:8px}.day-tabs button{flex:1;min-width:0;padding:6px 0}.agenda{display:grid;gap:6px}.agenda .slot{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:start;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#fff}.agenda .slot .sl{font-weight:800;color:var(--muted);text-align:center;padding-top:8px}.agenda .slot .sc{display:grid;gap:5px;min-width:0}.agenda .slot .slot-find{margin-top:0;min-height:40px}.agenda-empty-note{display:flex;margin-bottom:8px}.cand-list{max-height:none}.drawer,.drawer-backdrop{display:none}}@media(max-width:640px){.sem-toggle{display:flex}.pcal{grid-template-columns:repeat(2,minmax(0,1fr))}.pcal[data-sem="1"] [data-sem="2"],.pcal[data-sem="2"] [data-sem="1"]{display:none}.c3{grid-column:1}.c4{grid-column:2}.span-second,.span-all{grid-column:1/3}.row-sem.span-second,.term-head.c3,.term-col.c3{border-left:0}.term-col{min-height:110px;padding:7px 5px}.chip-btn{padding:6px 7px}.chip-btn .t{font-size:.88rem}.cal-card-head,.legend{padding:10px 12px}.row2{grid-template-columns:1fr}.dialog-backdrop{align-items:flex-end;padding:0}.dialog{max-width:none;border-radius:14px 14px 0 0;max-height:92vh}.dl{grid-template-columns:1fr}.dl dd{margin-bottom:5px}.ctl-field{width:100%}.ctl-field input,.ctl-field select{flex:1;min-width:0}}.summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-bottom:14px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}.summary h2{font-size:15px;margin-right:4px}.summary .figs{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}.summary .fig{display:inline-flex;align-items:center;gap:6px;font-size:.9rem}.summary .fig b{font-size:1.05rem}.summary .note{flex-basis:100%;font-size:.8rem;color:var(--muted);line-height:1.55}.period-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:640px}.pp-sem{border:1px solid var(--line);border-radius:10px;background:#fff;padding:6px;display:grid;gap:6px}.pp-sem button{min-height:40px;padding:4px 8px;font-size:.9rem}.pp-whole{width:100%;border-bottom:2px solid var(--green)}.pp-whole small{font-weight:500;margin-left:4px;font-size:.78rem}.pp-terms{display:grid;grid-template-columns:1fr 1fr;gap:6px}.period-picker button[aria-pressed=true]{background:var(--green);color:#fff;border:2px solid #173f32;box-shadow:inset 0 0 0 2px #fff}.period-picker button[aria-pressed=true]:before{content:"✓ ";font-weight:900}.pp-now{margin:8px 0 0;font-size:.88rem;font-weight:700}.pp-now span{font-weight:500;color:var(--muted)}.pp-semswitch,.day-label{display:none}@media(max-width:820px){.day-label{display:block}}.picker-label{font-size:.86rem;font-weight:800;color:var(--muted);margin:0 0 6px}.cell-add{min-height:30px;width:100%;margin-top:auto;padding:2px 4px;border:1px dashed #c3cfc4;border-radius:5px;background:transparent;color:var(--green);font-size:.74rem;font-weight:700}.cell-add:hover,.cell-add:focus-visible{background:var(--mint);border-color:var(--green)}.placement{display:inline-block;padding:0 5px;border-radius:3px;border:1px dashed var(--purple);color:var(--purple);font-size:.68rem;font-weight:800;background:#fff}.syl dd.unk{color:var(--muted);font-weight:600}.eval-list{margin:0;padding-left:1.1em}.eval-list li{margin:1px 0}.syl-link{display:inline-block;padding:2px 8px;border:1px dashed var(--purple);border-radius:4px;color:var(--purple);font-size:.84rem;font-weight:700}.pick-list{display:grid;gap:6px;margin:8px 0 0;padding:0;list-style:none;max-height:280px;overflow:auto}.pick{display:block;width:100%;text-align:left;min-height:44px;padding:7px 10px;font-weight:500;line-height:1.45}.pick[aria-pressed=true]{background:var(--mint);border:2px solid var(--green);color:var(--ink)}.pick[aria-pressed=true]:before{content:"✓ 選択中 ";font-weight:900;color:var(--green)}.pick b{display:block}.pick .muted{font-size:.8rem}.slot-cands h3,.slot-unconfirmed h3{margin:0 0 4px;font-size:.95rem}.slot-cands .pick .muted{display:block;overflow-wrap:anywhere}.slot-unconfirmed details{margin-top:6px}.slot-unconfirmed summary{cursor:pointer;font-weight:700;min-height:44px;padding:10px 0;display:list-item}.slot-unconfirmed ul{margin:4px 0 0;padding-left:1.2em}.slot-unconfirmed li{overflow-wrap:anywhere}.ctx{padding:8px 10px;border-radius:8px;background:var(--pale-blue);color:#23485c;font-size:.88rem;margin-bottom:8px}.ctx b{color:var(--ink)}.format-note{font-size:.8rem;color:var(--muted)}.sec-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}@media(max-width:640px){.period-picker{grid-template-columns:1fr}.period-picker[data-sem="1"] .pp-sem[data-sem="2"],.period-picker[data-sem="2"] .pp-sem[data-sem="1"]{display:none}.pp-semswitch{display:flex}.summary{padding:9px 11px}}.tt-detail-pane{display:none}@media(max-width:820px){.tt-detail-pane.active{display:block}}.registration .toast{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.provisional-tag{display:inline-block;margin-left:6px;padding:0 8px;border-radius:999px;font-size:.78rem;font-weight:800;background:var(--pale-amber);color:var(--amber);vertical-align:middle}.reason-help{margin:4px 0 0}.reselection-item{margin-bottom:12px}.plain-fieldset{border:0;padding:0;margin:0 0 14px}.plain-fieldset legend{padding:0;margin-bottom:8px}.radio-card{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;background:#fff;margin-bottom:8px;cursor:pointer}.radio-card input{margin-top:4px;min-width:20px;min-height:20px}.variant-axis{margin-bottom:14px}.curriculum-picker .year-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.curriculum-picker .year-btn{min-width:96px;min-height:44px;flex-direction:column;line-height:1.35;text-align:center}.curriculum-picker .year-btn[aria-disabled=true]{opacity:.7;cursor:not-allowed}.curriculum-picker .year-btn[aria-pressed=true]{background:var(--green);color:#fff;border-color:var(--green)}.curriculum-picker .year-status{font-size:.78rem;font-weight:700}.curriculum-picker .picker-summary{display:block;margin-top:10px;font-size:.92rem;color:var(--muted)}
