:root{--gi-bg:#f8fafc;--gi-card:#ffffff;--gi-border:#d9e2ec;--gi-text:#172033;--gi-muted:#526173;--gi-accent:#1f5d7a;--gi-accent-dark:#17465c;--gi-warn:#fff7ed;--gi-warn-border:#fed7aa;}
.gi-section{max-width:1120px;margin:0 auto;padding:2rem 1rem;color:var(--gi-text);} .gi-hero{padding-top:3rem;padding-bottom:3rem}.gi-kicker{text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--gi-accent);font-size:.85rem}.gi-lead{font-size:1.15rem;line-height:1.65;color:var(--gi-muted);max-width:820px}.gi-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.25rem}.gi-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--gi-border);border-radius:.65rem;padding:.7rem 1rem;background:#fff;color:var(--gi-text);text-decoration:none;font-weight:700}.gi-button-primary{background:var(--gi-accent);border-color:var(--gi-accent);color:#fff}.gi-button-primary:hover{background:var(--gi-accent-dark)}.gi-grid{display:grid;gap:1rem}.gi-grid-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.gi-card,.gi-callout,.gi-selector-panel,.gi-unit-result{background:var(--gi-card);border:1px solid var(--gi-border);border-radius:1rem;padding:1rem;box-shadow:0 1px 2px rgba(15,23,42,.04)}.gi-callout{background:#eef7fb}.gi-warning{background:var(--gi-warn);border:1px solid var(--gi-warn-border);border-radius:1rem}.gi-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--gi-border);border-radius:.75rem;overflow:hidden}.gi-table th,.gi-table td{border-bottom:1px solid var(--gi-border);padding:.7rem;text-align:left;vertical-align:top}.gi-flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;list-style:none;padding:0}.gi-flow li{background:#fff;border:1px solid var(--gi-border);border-radius:.75rem;padding:.75rem;font-weight:700}.gi-selector{margin-top:1.5rem}.gi-selector-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.gi-field label{display:block;font-weight:700;margin-bottom:.35rem}.gi-field select,.gi-field input{width:100%;box-sizing:border-box;border:1px solid var(--gi-border);border-radius:.55rem;padding:.65rem;background:#fff;color:var(--gi-text)}.gi-results{margin-top:1rem;display:grid;gap:.75rem}.gi-unit-result h3{margin:.1rem 0 .35rem}.gi-meta{display:flex;gap:.45rem;flex-wrap:wrap;margin:.5rem 0}.gi-pill{display:inline-flex;align-items:center;border:1px solid var(--gi-border);border-radius:999px;padding:.2rem .55rem;font-size:.8rem;background:#f8fafc;color:var(--gi-muted)}.gi-pill-warning{background:#fff7ed;border-color:#fdba74;color:#9a3412}.gi-small{font-size:.9rem;color:var(--gi-muted)}.gi-hidden{display:none!important}.gi-error{background:#fef2f2;border:1px solid #fecaca;border-radius:.75rem;padding:.75rem;color:#991b1b}.gi-success{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.75rem;padding:.75rem;color:#166534}


/* Guided workspace */
.gi-workspace-header{display:grid;gap:1rem;margin-top:1rem}.gi-unit-panel{background:#fff;border:1px solid var(--gi-border);border-radius:1rem;padding:1rem}.gi-unit-title{margin:.2rem 0}.gi-status-row{display:flex;gap:.5rem;flex-wrap:wrap;margin:.65rem 0}.gi-progress-shell{background:#fff;border:1px solid var(--gi-border);border-radius:1rem;padding:1rem}.gi-progress-bar{height:.8rem;background:#e2e8f0;border-radius:999px;overflow:hidden}.gi-progress-fill{height:100%;background:var(--gi-accent);width:0%;transition:width .2s ease}.gi-workspace-controls{display:flex;gap:.65rem;flex-wrap:wrap;margin:1rem 0}.gi-stage-layout{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:1rem;align-items:start}.gi-stage-nav{background:#fff;border:1px solid var(--gi-border);border-radius:1rem;padding:.75rem;position:sticky;top:1rem}.gi-stage-nav button{display:flex;align-items:center;gap:.45rem;width:100%;border:0;background:transparent;text-align:left;padding:.55rem;border-radius:.55rem;cursor:pointer;color:var(--gi-text)}.gi-stage-nav button:hover,.gi-stage-nav button.gi-active{background:#eef7fb}.gi-stage-nav .gi-stage-done{font-weight:700}.gi-stage-panel{background:#fff;border:1px solid var(--gi-border);border-radius:1rem;padding:1rem}.gi-task-list{display:grid;gap:.55rem;margin:1rem 0}.gi-task{display:flex;gap:.55rem;align-items:flex-start}.gi-task input{margin-top:.25rem}.gi-note-area{width:100%;min-height:420px;height:46vh;max-height:820px;resize:vertical;box-sizing:border-box;border:1px solid var(--gi-border);border-radius:.65rem;padding:.85rem;font-family:inherit;font-size:1rem;line-height:1.55}.gi-stage-help,.gi-stage-guidance{background:#f8fafc;border:1px solid var(--gi-border);border-radius:.75rem;padding:.75rem;margin:.75rem 0}.gi-stage-guidance h3{margin-top:0}.gi-stage-guidance ul{margin:.4rem 0 0;padding-left:1.25rem}.gi-resource-placeholder{background:#f8fafc;border:1px dashed var(--gi-border);border-radius:.75rem;padding:.75rem;margin-top:1rem}.gi-mode-select{display:grid;gap:.65rem}.gi-mode-label{margin:0;font-weight:800;color:var(--gi-text)}.gi-mode-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.gi-mode-button{border:2px solid var(--gi-border);border-radius:.8rem;background:#fff;color:var(--gi-text);padding:.85rem;display:grid;gap:.2rem;text-align:left;cursor:pointer;min-height:78px}.gi-mode-button strong{font-size:1.05rem}.gi-mode-button span{font-size:.84rem;color:var(--gi-muted)}.gi-mode-button:hover{border-color:var(--gi-accent)}.gi-mode-button.gi-mode-active{background:var(--gi-accent);border-color:var(--gi-accent);color:#fff;box-shadow:0 6px 18px rgba(31,93,122,.22)}.gi-mode-button.gi-mode-active span{color:#e8f4f8}.gi-mode-description{margin:0;color:var(--gi-muted);font-weight:700}.gi-text-critical{background:#fff7ed;border:1px solid #fdba74;color:#9a3412;border-radius:1rem;padding:1rem}.gi-stage-meta{display:flex;gap:.5rem;flex-wrap:wrap}.gi-export-box{white-space:pre-wrap;background:#0f172a;color:#e2e8f0;border-radius:.75rem;padding:1rem;max-height:280px;overflow:auto}.gi-prev-next,.gi-action-row,.gi-help-strip{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.gi-help-strip{margin:1rem 0 1.25rem;padding:.85rem;background:#eef7fb;border:1px solid var(--gi-border);border-radius:1rem}.gi-prev-next a{max-width:100%}.gi-learning-block{background:#f8fafc;border:1px solid var(--gi-border);border-radius:1rem;padding:1rem}.gi-checklist{padding-left:1.25rem}.gi-checklist li{margin:.35rem 0}.gi-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.gi-flow-list,.gi-principle-grid{display:grid;gap:.65rem}.gi-flow-list div,.gi-principle-grid div{display:grid;gap:.2rem;background:#fff;border:1px solid var(--gi-border);border-radius:.75rem;padding:.75rem}.gi-flow-list strong,.gi-principle-grid strong{color:var(--gi-accent)}.gi-principle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gi-card[href]{display:block;text-decoration:none;color:inherit}.gi-card[href]:hover{border-color:var(--gi-accent)}@media (max-width:820px){.gi-stage-layout,.gi-two-col,.gi-principle-grid,.gi-mode-buttons{grid-template-columns:1fr}.gi-stage-nav{position:relative;top:auto}.gi-note-area{height:55vh;min-height:360px}.gi-help-strip .gi-button{width:100%;justify-content:center}}

/* Study Vault generator */
.gi-study-vault-generator pre{font-size:.85rem}.gi-selector-panel form{margin:0}

/* Study Vault Manager */
.gi-study-vault-manager input[type=file]{display:block;margin:.5rem 0 1rem}.gi-study-vault-manager .gi-results{margin-top:1rem}

.gi-download-list { margin: 0; padding-left: 1.2rem; }
.gi-download-list li { margin: 0 0 .8rem; }
.gi-download-list span { color: #475569; font-size: .94rem; }

.gi-example-page article.gi-card { margin-bottom: 1rem; }
.gi-example-page ul { padding-left: 1.25rem; }
.gi-compact-details{border:1px solid var(--gi-border);border-radius:.75rem;background:#fff;margin:.75rem 0;overflow:hidden}
.gi-compact-details summary{cursor:pointer;font-weight:800;color:var(--gi-accent);padding:.8rem 1rem;list-style:none}
.gi-compact-details summary::-webkit-details-marker{display:none}
.gi-compact-details summary::after{content:"+";float:right;color:var(--gi-muted)}
.gi-compact-details[open] summary::after{content:"-"}
.gi-compact-details>div{border-top:1px solid var(--gi-border);padding:1rem}
