:root{--ink: #211818;--maroon-black: #2a0c14;--maroon-deep: #49121f;--maroon: #631929;--cream: #f9f4eb;--parchment: #eee2d0;--warm-gray: #c6b5a0;--gold: #c4914d;--gold-dark: #976934;--off-white: #fffcf6;--charcoal: #35302e;--border: #e2cdb0;--danger: #b0392b;--success: #3f7d4f;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--cream);color:var(--ink);overflow-x:hidden}a{color:var(--maroon)}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--maroon-black);color:var(--parchment);padding:24px 16px;display:flex;flex-direction:column;gap:4px}.sidebar h1{font-size:16px;letter-spacing:.04em;color:var(--off-white);margin:0 0 20px;text-transform:uppercase}.sidebar a{color:var(--parchment);text-decoration:none;padding:10px 12px;border-radius:6px;font-size:14px}.sidebar a:hover,.sidebar a.active{background:#c4914d2e;color:var(--off-white)}.main{flex:1;padding:32px 40px;max-width:1100px}h1,h2,h3{color:var(--maroon-deep)}.card{background:var(--off-white);border:1px solid var(--border);border-radius:10px;padding:20px 22px;margin-bottom:16px}.card+.card{margin-top:0}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.page-heading h1{margin:0 0 6px}.page-heading p{margin:0;max-width:640px}.course-card{display:flex;justify-content:space-between;align-items:center;gap:16px}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--maroon);color:var(--off-white);border:none;border-radius:6px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer}.btn:hover{background:var(--maroon-deep)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:transparent;color:var(--maroon);border:1px solid var(--border)}.btn.secondary:hover{background:var(--parchment)}.btn.gold{background:var(--gold);color:var(--ink)}.btn.gold:hover{background:var(--gold-dark)}.btn.small{padding:5px 10px;font-size:12.5px}.btn.danger{background:var(--danger)}input[type=text],input[type=number],input[type=password],textarea,select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:inherit;background:var(--off-white);color:var(--ink)}textarea{resize:vertical}label{display:block;font-size:12.5px;font-weight:600;color:var(--charcoal);margin-bottom:4px;text-transform:uppercase;letter-spacing:.03em}.field{margin-bottom:14px;min-width:0}.info-box{background:#eef3f7;border:1px solid #b9cbd8;color:#29485e;border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:13.5px}.mode-picker{border:0;padding:0;margin:0 0 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mode-picker legend{display:block;width:100%;margin-bottom:8px;font-size:12.5px;font-weight:700;color:var(--charcoal);text-transform:uppercase;letter-spacing:.03em}.mode-option{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid var(--border);border-radius:8px;background:var(--off-white);cursor:pointer;text-transform:none;letter-spacing:0}.mode-option.selected{border-color:var(--gold);box-shadow:0 0 0 2px #c4914d2e;background:#fff8ec}.mode-option input{margin-top:3px;flex:0 0 auto}.mode-option span{display:flex;flex-direction:column;gap:3px}.mode-option strong{color:var(--maroon-deep);font-size:14px}.mode-option small{color:#766b61;font-size:12.5px;line-height:1.35;font-weight:400}.row{display:flex;gap:16px;flex-wrap:wrap}.row>*{flex:1;min-width:200px}.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.badge.queued{background:#e6e0d3;color:var(--charcoal)}.badge.processing{background:#fde9c8;color:#8a5a12}.badge.complete{background:#dcefe0;color:var(--success)}.badge.failed,.badge.error{background:#f6d9d4;color:var(--danger)}.badge.not_started{background:#eee;color:#888}.tree-module{margin-bottom:18px;border-left:3px solid var(--gold);padding-left:14px}.tree-lesson{padding:6px 0;border-bottom:1px dashed var(--border);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px}.tree-lesson:last-child{border-bottom:none}.muted{color:#8a7f74;font-size:13px}.warning-box{background:#fdf2df;border:1px solid #e9c98d;color:#7a520c;border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:13.5px}.error-box{background:#f9e3df;border:1px solid #e2a798;color:#8a2c1c;border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:13.5px}.callout-ok{background:#e3f0e5;border:1px solid #a9cdae;color:#285c33;border-radius:8px;padding:12px 16px;margin-top:10px;font-size:13.5px}.step-grid{display:flex;gap:4px;flex-wrap:wrap}.step-chip{font-size:10.5px;padding:2px 6px;border-radius:4px;background:#eee;text-transform:uppercase}.step-chip.complete{background:#dcefe0;color:var(--success)}.step-chip.processing{background:#fde9c8;color:#8a5a12}.step-chip.failed,.step-chip.error{background:#f6d9d4;color:var(--danger)}.step-chip.queued{background:#e6e0d3;color:var(--charcoal)}.swatch{display:inline-block;width:22px;height:22px;border-radius:4px;border:1px solid rgba(0,0,0,.15);vertical-align:middle;margin-right:6px}table.simple{width:100%;border-collapse:collapse;font-size:13.5px}table.simple th,table.simple td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border)}@media (max-width: 780px){.app-shell{flex-direction:column;min-height:0}.sidebar{width:100%;flex-direction:row;align-items:center;gap:6px;padding:10px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch}.sidebar h1{display:none}.sidebar a{flex-shrink:0;padding:8px 12px}.main{padding:16px;max-width:100%;width:100%;overflow-x:hidden}.card{padding:16px;max-width:100%}.page-heading,.course-card{flex-direction:column;align-items:stretch}.page-heading .btn{align-self:flex-start}.row>*{min-width:100%;flex-basis:100%}.mode-picker{grid-template-columns:1fr}input[type=file]{display:block;max-width:100%;width:100%}.tree-module{padding-left:10px}h1{font-size:22px}.main div[style*="display: flex"],.main div[style*="display:flex"]{flex-wrap:wrap}}
