:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}body{min-height:100vh;margin:0}.btn-primary,.btn-secondary,.btn-plain{cursor:pointer;border:1px solid #0000;border-radius:6px;padding:.5rem .9rem;font-size:.95rem}.btn-primary{color:#fff;background:#443c8c;border:none}.btn-primary:disabled{opacity:.55;cursor:default}.btn-secondary{color:inherit;background:0 0;border-color:#999}.btn-plain{color:inherit;background:0 0;border:none;text-decoration:underline}input,select{font:inherit;color:inherit;background:0 0;border:1px solid #999;border-radius:6px;padding:.45rem .6rem}.form-stack{flex-direction:column;gap:1rem;display:flex}.form-stack label{flex-direction:column;gap:.3rem;font-weight:600;display:flex}.form-stack small{color:#666;font-weight:400}.form-error{color:#b3261e;margin:0}.required{color:#b3261e}.auth-screen{text-align:center;max-width:26rem;margin:15vh auto 0;padding:0 1.5rem}.auth-screen h1{margin-bottom:1.5rem;font-size:1.5rem}.auth-subtitle{color:#555;margin:-.75rem 0 1rem;font-size:1.05rem;font-weight:500}.auth-form{text-align:left;flex-direction:column;gap:.75rem;display:flex}.auth-form label{flex-direction:column;gap:.3rem;display:flex}.auth-links{flex-direction:column;align-items:center;gap:.35rem;margin-top:1.25rem;display:flex}.auth-links .btn-plain{color:#555;font-size:.88rem}.auth-form label{font-weight:600}.auth-note{color:#555;margin:.5rem 0 1rem;line-height:1.5}.auth-error{color:#b3261e}.app-shell{flex-direction:column;height:100vh;display:flex}.app-header{border-bottom:1px solid #ddd;flex-shrink:0;justify-content:space-between;align-items:center;padding:.6rem 1.25rem;display:flex}.app-header h1{margin:0;font-size:1.1rem}.header-left{align-items:center;gap:1.25rem;display:flex}.header-nav{gap:.25rem;display:flex}.nav-link{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.35rem .75rem;font-size:.9rem}.nav-link:hover{background:#eef0fb}.nav-active{color:#fff;background:#443c8c}.nav-active:hover{background:#443c8c}.header-user{align-items:center;gap:.75rem;font-size:.9rem;display:flex}.role-tag{color:#fff;text-transform:capitalize;background:#443c8c;border-radius:999px;margin-left:.5rem;padding:.1rem .5rem;font-size:.75rem}.bell-wrap{position:relative}.bell-button{cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.25rem .4rem;font-size:1.1rem;position:relative}.bell-button:hover{background:#eef0fb}.bell-count{color:#fff;text-align:center;background:#b3261e;border-radius:999px;min-width:1.1rem;padding:.05rem .35rem;font-size:.68rem;font-weight:700;position:absolute;top:-.2rem;right:-.35rem}.bell-panel{color:#1a1a1a;z-index:20;text-align:left;background:#fff;border-radius:10px;width:24rem;max-width:90vw;max-height:70vh;padding:.9rem 1rem;position:absolute;top:calc(100% + .5rem);right:0;overflow-y:auto;box-shadow:0 12px 40px #00000040}.bell-empty{color:#666;margin:.25rem 0}.bell-section h3{text-transform:uppercase;letter-spacing:.03em;color:#666;margin:.5rem 0 .4rem;font-size:.8rem}.bell-section ul{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.bell-item{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;gap:.15rem;padding:.4rem .5rem;font-size:.88rem;line-height:1.4;display:flex}button.bell-item:hover{background:#eef0fb}.bell-item-static{cursor:default}.bell-item-sub{color:#666;font-size:.78rem}.bell-queue-link{margin-top:.4rem;font-size:.85rem}.result-approved{color:#1d6b2a;font-weight:600}.result-rejected{color:#b3261e;font-weight:600}.matrix-page{flex-direction:column;flex:1;gap:1rem;min-height:0;padding:1rem 1.25rem;display:flex}.toolbar{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.6rem;display:flex}.search-box{flex:16rem;min-width:12rem}.toggle{white-space:nowrap;align-items:center;gap:.35rem;font-size:.9rem;display:flex}.page-message{text-align:center;color:#555;margin:4rem auto;line-height:1.6}.count-chip{color:#666;white-space:nowrap;font-size:.75rem;font-weight:400}.matrix-scroll{border:1px solid #ddd;border-radius:8px;flex:1;min-height:0;overflow:auto}.matrix{border-collapse:separate;border-spacing:0;width:100%}.matrix th,.matrix td{text-align:left;vertical-align:top;border-bottom:1px solid #e3e3e3;border-right:1px solid #eee;padding:.4rem}.matrix thead th{z-index:2;background:#f6f6f9;padding:.6rem;font-size:.9rem;position:sticky;top:0}.matrix .course-col{z-index:1;background:#fbfbfd;min-width:15rem;max-width:20rem;position:sticky;left:0}.matrix thead .course-col{z-index:3;background:#f6f6f9}.course-link{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;gap:.15rem;padding:.15rem .2rem;display:flex}.course-link:hover{background:#eef0fb}.course-link:hover .course-name{text-decoration:underline}.course-name{font-size:.92rem;font-weight:600}.course-sub{color:#666;margin-top:.15rem;font-size:.78rem;font-weight:400}.row-archived .course-name{color:#888;text-decoration:line-through}.archived-tag{color:#888;border:1px solid #bbb;border-radius:999px;margin-left:.4rem;padding:0 .4rem;font-size:.7rem;text-decoration:none;display:inline-block}.cell{width:100%;min-width:14rem;min-height:3.6rem;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;align-items:flex-start;gap:.35rem;padding:.45rem .55rem;display:flex}.cell:hover{background:#eef0fb}.cell-preview{color:inherit;font-size:.83rem;line-height:1.35}.cell-empty .cell-preview{color:#999;font-style:italic}.badge{white-space:nowrap;border-radius:999px;padding:.1rem .5rem;font-size:.7rem}.badge-empty{color:#666;background:#ececec}.badge-draft{color:#1c4d8f;background:#e3ecf7}.badge-pending{color:#8a5a00;background:#fdefd3}.badge-approved{color:#1d6b2a;background:#ddf2df}.badge-stale{color:#8a3d00;background:#f7e0d3}.cell-badges{flex-wrap:wrap;gap:.3rem;display:flex}.course-detail{flex-direction:column;gap:1.5rem;max-width:60rem;padding:1rem 1.25rem;display:flex;overflow-y:auto}.detail-header{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.detail-title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;width:100%;display:flex}.detail-title{margin:0;font-size:1.35rem}.detail-actions{gap:.6rem;display:flex}.section-title-row{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.offering-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.offering-card{border:1px solid #ddd;border-radius:8px;flex-direction:column;gap:.4rem;padding:.7rem .9rem;display:flex}.offering-archived{opacity:.65}.offering-facts{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.fact-chip{white-space:nowrap;background:#f0f0f5;border-radius:999px;padding:.15rem .6rem;font-size:.82rem}.offering-actions{gap:.75rem;display:flex}.channel-desc-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.channel-desc-card{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #ddd;border-radius:8px;flex-direction:column;gap:.35rem;padding:.7rem .9rem;display:flex}.channel-desc-card:hover{background:#eef0fb}.channel-desc-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.cell-empty-text{color:#999;font-style:italic}.form-grid{grid-template-columns:1fr 1fr;gap:.9rem;display:grid}@media (width<=40rem){.form-grid{grid-template-columns:1fr}}.form-grid label{flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:600;display:flex}.form-grid small{color:#666;font-weight:400}.skip-dates{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.skip-chip{background:#f0f0f5;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .35rem .15rem .6rem;font-size:.82rem;font-weight:400;display:inline-flex}.skip-remove{cursor:pointer;color:#666;background:0 0;border:none;padding:.1rem .25rem;font-size:.7rem}.review-page,.activity-page,.manage-page{flex-direction:column;gap:1rem;max-width:70rem;padding:1rem 1.25rem;display:flex;overflow-y:auto}.review-list{flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.review-card{border:1px solid #ddd;border-radius:10px;flex-direction:column;gap:.75rem;padding:1rem 1.1rem;display:flex}.review-card-head{justify-content:space-between;gap:.75rem;display:flex}.activity-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.activity-item{border-bottom:1px solid #eee;justify-content:space-between;gap:1rem;padding:.5rem .25rem;font-size:.9rem;line-height:1.45;display:flex}.activity-when{color:#666;white-space:nowrap;font-size:.82rem}.notes-cell{max-width:18rem;font-size:.82rem}.area-list{flex-direction:column;gap:.75rem;display:flex}.area-card{border:1px solid #ddd;border-radius:8px;padding:.7rem .9rem}.area-head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.category-list{flex-direction:column;gap:.3rem;margin:.5rem 0 0;padding:0 0 0 1rem;list-style:none;display:flex}.category-list li{justify-content:space-between;align-items:baseline;gap:.75rem;font-size:.9rem;display:flex}.header-name{text-decoration:none}.header-name:hover{text-decoration:underline}textarea.editor-textarea{font-weight:400}.import-page{flex-direction:column;gap:1rem;max-width:60rem;padding:1rem 1.25rem;display:flex;overflow-y:auto}.upload-zone{text-align:center;border:2px dashed #bbb;border-radius:10px;flex-direction:column;align-items:center;gap:.75rem;padding:2rem;display:flex}.import-preview,.import-progress{flex-direction:column;gap:1rem;display:flex}.import-stats{flex-wrap:wrap;gap:.75rem;display:flex}.stat-tile{text-align:center;border:1px solid #ddd;border-radius:8px;min-width:7rem;padding:.6rem 1rem}.stat-value{color:#443c8c;font-size:1.6rem;font-weight:700}.stat-label{color:#666;font-size:.8rem}.import-section h3{margin:0 0 .5rem;font-size:.9rem}.chip-row{flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem;display:flex}.warn-title{color:#8a5a00}.warn-list{margin:0;padding-left:1.2rem;font-size:.88rem;line-height:1.5}.progress-bar{background:#e6e6ee;border-radius:999px;height:.7rem;overflow:hidden}.progress-fill{background:#443c8c;height:100%;transition:width .2s}.users-page{flex-direction:column;gap:1.5rem;padding:1rem 1.25rem;display:flex;overflow-y:auto}.section-title{margin:0 0 .25rem;font-size:1rem}.section-hint{color:#666;margin:.35rem 0 .75rem;font-size:.85rem;line-height:1.5}.pending-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.pending-card{background:#fdf6e5;border:1px solid #e0b458;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem .9rem;display:flex}.pending-controls{align-items:center;gap:.6rem;display:flex}.users-scroll{flex:initial;max-height:60vh}.users-table td,.users-table th{vertical-align:middle;padding:.55rem .7rem}.role-text{text-transform:capitalize}.btn-small{padding:.3rem .6rem;font-size:.85rem}.modal-backdrop{z-index:10;background:#00000073;justify-content:center;align-items:flex-start;padding:8vh 1rem 1rem;display:flex;position:fixed;inset:0}.modal{color:#1a1a1a;background:#fff;border-radius:10px;flex-direction:column;width:100%;max-width:28rem;max-height:82vh;display:flex;box-shadow:0 12px 40px #00000040}.modal-wide{max-width:44rem}.modal-header{justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.2rem 0;display:flex}.modal-header h2{margin:0;font-size:1.05rem;line-height:1.35}.modal-close{color:#666;font-size:1rem;text-decoration:none}.modal-body{padding:.9rem 1.2rem 1.2rem;overflow-y:auto}.modal-actions{justify-content:flex-end;gap:.6rem;margin-top:1.2rem;display:flex}.confirm-message{line-height:1.55}.btn-danger{cursor:pointer;color:#b3261e;background:0 0;border:1px solid #b3261e;border-radius:6px;padding:.5rem .9rem;font-size:.95rem}.entry-meta{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.entry-meta-item{color:#666;font-size:.82rem}.format-notes{color:#444;background:#f4f4f8;border-left:3px solid #443c8c;border-radius:4px;padding:.5rem .75rem;font-size:.85rem}.entry-content{white-space:pre-wrap;font-size:.95rem;line-height:1.55}.empty-state{color:#666;line-height:1.55}.editor-textarea{width:100%;font:inherit;color:inherit;resize:vertical;background:0 0;border:1px solid #999;border-radius:6px;padding:.6rem .7rem;line-height:1.5}.editor-footer{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.4rem;font-size:.82rem;display:flex}.char-counter{color:#666}.char-counter-over{color:#b3261e;font-weight:600}.soft-warning{color:#8a5a00}.draft-notice{color:#8a5a00;background:#fdefd3;border-radius:6px;margin:0 0 .6rem;padding:.5rem .75rem;font-size:.85rem}.review-intro{line-height:1.5}.diff-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=44rem){.diff-grid{grid-template-columns:1fr}}.diff-grid h3{text-transform:uppercase;letter-spacing:.03em;color:#666;margin:0 0 .4rem;font-size:.85rem}.diff-current,.diff-proposed{border:1px solid #ddd;border-radius:6px;max-height:18rem;padding:.6rem .75rem;font-size:.9rem;overflow-y:auto}.diff-proposed{background:#f6f5fc;border-color:#443c8c}.review-actions{margin-top:1rem}.review-note-label{flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:600;display:flex}.history{border-top:1px solid #ddd;margin-top:1.5rem;padding-top:.75rem}.history h3{margin:0 0 .5rem;font-size:.9rem}.history-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.history-item{font-size:.85rem;line-height:1.45}.history-row{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.history-actions{white-space:nowrap;gap:.5rem;display:flex}.history-content{border:1px solid #ddd;border-radius:6px;margin-top:.35rem;padding:.5rem .7rem;font-size:.88rem}@media (prefers-color-scheme:dark){.auth-subtitle,.auth-links .btn-plain,.auth-note,.page-message,.form-stack small,.course-sub,.count-chip,.entry-meta-item,.empty-state{color:#b5b5b5}.app-header{border-bottom-color:#3a3a3a}.matrix-scroll{border-color:#3a3a3a}.matrix th,.matrix td{border-bottom-color:#333;border-right-color:#2c2c2c}.matrix thead th{background:#26262c}.matrix .course-col{background:#202024}.matrix thead .course-col{background:#26262c}.cell:hover{background:#2d2d3d}.cell-empty .cell-preview{color:#777}.badge-empty{color:#aaa;background:#3a3a3a}.badge-draft{color:#9dc3f0;background:#1f3350}.badge-pending{color:#f0c467;background:#4a3a10}.badge-approved{color:#8fd39a;background:#1d3a22}.modal{color:#eee;background:#232327}.format-notes{color:#ccc;background:#2b2b33}input,select{background:#1d1d21;border-color:#555}select option{background:#1d1d21}.char-counter{color:#b5b5b5}.soft-warning{color:#f0c467}.draft-notice{color:#f0c467;background:#4a3a10}.diff-grid h3{color:#b5b5b5}.diff-current,.diff-proposed,.history,.history-content{border-color:#3a3a3a}.diff-proposed{background:#2b2b3a;border-color:#7a72c9}.btn-danger{color:#e5786f;border-color:#e5786f}.nav-link:hover{background:#2d2d3d}.nav-active,.nav-active:hover{background:#443c8c}.section-hint{color:#b5b5b5}.pending-card{background:#3a3015;border-color:#8a6d1f}.course-link:hover,.channel-desc-card:hover{background:#2d2d3d}.offering-card,.channel-desc-card{border-color:#3a3a3a}.fact-chip,.skip-chip{background:#33333a}.skip-remove{color:#aaa}.form-grid small{color:#b5b5b5}.cell-empty-text{color:#777}.badge-stale{color:#f0a367;background:#4a2c10}.review-card,.area-card{border-color:#3a3a3a}.activity-item{border-bottom-color:#333}.activity-when{color:#b5b5b5}.upload-zone{border-color:#555}.stat-tile{border-color:#3a3a3a}.stat-value{color:#9d95e0}.stat-label{color:#b5b5b5}.progress-bar{background:#33333a}.warn-title{color:#f0c467}.bell-button:hover{background:#2d2d3d}.bell-panel{color:#eee;background:#232327}.bell-empty,.bell-section h3,.bell-item-sub{color:#b5b5b5}button.bell-item:hover{background:#2d2d3d}.result-approved{color:#8fd39a}.result-rejected{color:#e5786f}}
