@import url('https://fonts.googleapis.com/css2?family=Lora:wght@500;600&display=swap');
@media screen {
  body.visual-workspace { --sidebar-width: 238px; padding-left: var(--sidebar-width); background: #f4f7fb; }
  body.visual-workspace.sidebar-collapsed { --sidebar-width: 68px; }
  .workspace-sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar-width); padding: 18px 10px; background: #fff; border-right: 1px solid #d8e2ef; z-index: 20; overflow-y: auto; }
  .workspace-sidebar .sidebar-toggle { width: 100%; min-height: 44px; margin-bottom: 20px; border: 1px solid #d8e2ef; border-radius: 8px; background: #f4f7fb; color: #21344e; cursor: pointer; font: 600 14px system-ui; }
  .sidebar-heading { color: #607087; font: 700 11px system-ui; letter-spacing: .08em; text-transform: uppercase; padding: 0 12px; margin-bottom: 14px; }
  .workspace-sidebar nav { display: flex; flex-direction: column; gap: 6px; margin: 0; }
  .workspace-sidebar nav a { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 10px 12px; border-radius: 9px; color: #30465f; text-decoration: none; font: 500 14px/1.4 system-ui; }
  .workspace-sidebar nav a:hover { background: #e7f0ff; }
  .workspace-sidebar nav a[aria-current="page"] { background: #3185fc; color: white; }
  .nav-icon { flex: 0 0 22px; text-align: center; font-size: 23px; line-height: 1; }
  .sidebar-collapsed .nav-label, .sidebar-collapsed .sidebar-heading { display: none; }
  .sidebar-collapsed .workspace-sidebar nav a { justify-content: center; padding: 10px 0; }
  .workspace-sidebar a:focus-visible, .sidebar-toggle:focus-visible { outline: 3px solid #17283f; outline-offset: 2px; }
  .visual-workspace main { max-width: 1500px; min-width: 0; margin: auto; }
  .workspace-header { padding: 14px 24px; background: #fff; border-bottom: 1px solid #d8e2ef; }
  .workspace-brand { display: flex; align-items: center; gap: 12px; color: #17283f; text-decoration: none; font: 600 clamp(16px,2vw,22px)/1.2 Lora,serif; letter-spacing: -.045em; }
  .workspace-brand img { object-fit: contain; }
  .visual-workspace .app-header { flex-wrap: wrap; gap: 12px; position: relative; }
  .visual-toolbar, .visual-workspace .print-toolbar, .visual-workspace .projection-settings { background: white; border: 1px solid #d8e2ef; border-radius: 12px; padding: 16px; margin: 0 0 24px; }
  .visual-toolbar { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: flex-start; }
  .visual-toolbar .toolbar-group { flex: 1 1 340px; min-width: 0; }
  .visual-toolbar h2 { margin-top: 0; }
  .visual-toolbar .controls { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0; width: 100%; }
  .visual-toolbar input:not([type=checkbox]), .visual-toolbar select { max-width: 100%; min-width: 0; }
  .visual-workspace .builder-layout { grid-template-columns: minmax(260px, 1fr) minmax(260px, 1.3fr); gap: 24px; }
  .visual-workspace .builder-left { background: #fff; border: 1px solid #d8e2ef; border-radius: 12px; padding: 20px; }
  .visual-workspace .builder-left h2 { margin-top: 0; }
  .visual-workspace .builder-right { top: 24px; }
  .visual-workspace .builder-right .wheel-holder { max-width: 100%; }
  .visual-workspace .consultation-button { left: calc(var(--sidebar-width) + 16px); }
  .visual-workspace button.primary { background: #3185fc; border-color: #3185fc; color: white; }
  @media (max-width: 1000px) { .visual-workspace .builder-layout { grid-template-columns: 1fr; } .visual-workspace .builder-right { position: static; } }
  @media (max-width: 760px) {
    body.visual-workspace { padding-left: 68px; }
    body.visual-workspace:not(.sidebar-collapsed) { --sidebar-width: 238px; }
    body.visual-workspace:not(.sidebar-collapsed) .workspace-sidebar { box-shadow: 10px 0 30px #17283f26; }
    .visual-workspace .consultation-button { left: 80px; }
    .visual-workspace main { padding-left: 10px; padding-right: 10px; }
    .visual-workspace .view-panel { padding: 12px 0 24px; }
    .visual-workspace .app-header, .workspace-header { padding: 12px; }
    .visual-workspace .view-tabs { flex-wrap: wrap; }
    .visual-toolbar { padding: 12px; }
    .visual-workspace .sheet { overflow-x: auto; }
  }
}
@media print { .workspace-sidebar, .workspace-header, .visual-toolbar { display: none !important; } body.visual-workspace { padding-left: 0 !important; } }
.share-dialog{width:min(620px,calc(100% - 32px));max-height:85vh;overflow:auto;border:1px solid #c7d5e7;border-radius:14px;padding:24px;color:#17283f;background:white;font:16px/1.5 system-ui}
.share-dialog::backdrop{background:#17283f88}
.share-dialog button,.share-dialog a{display:inline-block;margin:6px 8px 6px 0;padding:10px;border:1px solid #b7c6d8;border-radius:8px;background:#eef5ff;color:#174d95;font:inherit;cursor:pointer}
.share-dialog textarea{width:100%;height:230px;margin:14px 0;font:14px/1.5 system-ui;padding:10px}
.share-dialog [hidden]{display:none!important}

.offline-tools{margin:24px 0;padding:14px;border:1px solid #d8e2ef;border-radius:10px;background:#fff;color:#17283f;font:14px/1.5 system-ui;display:flex;flex-wrap:wrap;align-items:center;gap:12px}.offline-tools button{padding:9px 12px;border:1px solid #b7c6d8;border-radius:8px;background:#f4f7fb;color:#174d95;cursor:pointer}.offline-tools details{flex-basis:100%}.offline-tools [hidden]{display:none!important}.offline-tools button:disabled{opacity:.6;cursor:wait}@media print{.offline-tools{display:none!important}}

.projection .offline-tools{display:none!important}

.file-legacy,.file-controls-source{display:none!important}
.file-bar{background:#fff;border:1px solid #d8e2ef;border-radius:12px;margin:12px 0 20px;padding:8px 16px;color:#17283f;font:15px/1.5 system-ui}
.file-menu-row,.file-document-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.file-document-row{padding:12px 0 6px;border-top:1px solid #e5ebf3;margin-top:8px}
.file-document-row input{font:600 18px system-ui;min-width:150px;max-width:100%;flex:1;border:1px solid transparent;border-radius:6px;padding:8px;color:#17283f;background:#f8fafc}.file-document-row input:focus{border-color:#3185fc}
.file-save-state{font-size:13px}.file-offline-state{font-size:12px;color:#52647a;max-width:350px}.file-menu{position:relative}.file-menu>summary{list-style:none;padding:8px 10px;cursor:pointer;border-radius:6px}.file-menu>summary::-webkit-details-marker{display:none}.file-menu[open]>summary,.file-menu>summary:hover{background:#e7f0ff;color:#155dbd}
.file-menu-items{position:absolute;top:100%;left:0;width:260px;z-index:40;background:#fff;border:1px solid #c7d4e6;box-shadow:0 8px 25px #17283f22;border-radius:10px;padding:6px}.file-menu-items button{display:block;width:100%;text-align:left;background:transparent;border:0;color:#17283f;padding:10px;border-radius:5px;font:inherit;cursor:pointer}.file-menu-items button:hover{background:#e7f0ff}
.file-run{margin-left:auto;background:#3185fc!important;color:#fff!important;border:0!important;padding:10px 18px!important;border-radius:8px!important;font:600 15px system-ui!important;cursor:pointer}
.file-dialog{width:min(780px,calc(100vw - 32px));max-height:85dvh;overflow:auto;padding:24px;border:1px solid #c7d4e6;border-radius:16px;background:#fff;color:#17283f;font:15px/1.5 system-ui}.file-dialog::backdrop{background:#13263d99}.file-dialog h2{margin:0 70px 20px 0}.file-close{position:absolute;right:18px;top:18px}.file-dialog button,.file-dialog select{font:inherit;color:#174d95;background:#f4f7fb;border:1px solid #b7c6d8;border-radius:7px;padding:9px 13px;cursor:pointer}.file-dialog form label{display:block;margin:16px 0}.file-dialog form input,.file-dialog form select{display:block;box-sizing:border-box;width:100%;padding:10px;margin-top:5px}.file-library-tabs{display:flex;gap:8px;margin-bottom:20px}.file-library-tabs button[aria-pressed=true]{background:#3185fc;color:#fff}.file-library-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.file-library-card{position:relative;border:1px solid #d8e2ef;border-radius:10px;padding:16px}.file-library-card h3{margin:10px 0 4px;font-size:17px}.file-library-card p{font-size:12px;color:#52647a}.file-library-card details{display:inline-block;margin-left:10px}.file-library-card details button{display:block;margin-top:6px}.file-mini-preview{display:flex;gap:5px;min-height:60px;align-items:stretch}.file-mini-preview span{background:#edf5ff;border:1px solid #c7d4e6;border-radius:6px;padding:8px 5px;font:11px/1.4 system-ui;flex:1;overflow:hidden;max-height:65px}
.visual-toolbar>.editor-options{flex:1 1 250px;min-width:0}.editor-options>summary{font:600 16px system-ui;cursor:pointer;padding:8px}.editor-fields{display:flex;align-items:flex-start;flex-wrap:wrap;gap:16px;padding:12px 8px}.editor-fields label,.editor-fields input,.editor-fields select{max-width:100%}.editor-fields>div>label{display:block;margin-bottom:4px}.editor-fields form{width:100%}.file-dialog .offline-tools{border:0;padding:0}
.file-bar button:focus-visible,.file-bar summary:focus-visible,.file-dialog button:focus-visible{outline:3px solid #3185fc;outline-offset:2px}.projection .file-bar{display:none!important}@media(max-width:600px){.file-bar{padding:8px}.file-menu-row{gap:0}.file-menu-items{width:220px}.file-menu:nth-child(n+3) .file-menu-items{left:auto;right:0}.file-document-row input{flex-basis:100%}.file-library-body{grid-template-columns:1fr}}
@media print{.file-bar,.file-dialog{display:none!important}}

.token-run .file-bar{display:none!important}

.nav-material-icon{display:inline-block;width:24px;height:24px;flex:0 0 24px;background-color:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}

/* Keep document menus and the shared view controls within reach while scrolling. */
@media screen {
 .file-bar{position:sticky;top:0;z-index:30;box-shadow:0 3px 10px #17283f12}
 .file-modes{display:flex;gap:6px;margin-left:auto;align-items:center}
 .file-modes button{border:1px solid #b7c6d8;border-radius:8px;padding:9px 14px;background:#fff;color:#17283f;font:600 14px system-ui;cursor:pointer;min-height:44px}
 .file-modes button:hover{background:#e7f0ff}
 .file-modes button[aria-pressed=true]{background:#3185fc;border-color:#3185fc;color:#fff}
 @media(max-width:600px){.file-modes{justify-content:flex-end;flex:1 0 100%;margin-top:8px}.file-modes button{flex:1;padding:9px 6px}}
}

@media screen {
 #projectionStage.stage-full-window{position:fixed;inset:0;width:100vw;height:100dvh!important;z-index:100;border-radius:0;background:var(--bg,#fff)}
 .planner-exit{display:none}
 .sheet.planner-running{position:fixed;inset:0;width:100vw!important;max-width:none!important;height:100dvh;margin:0!important;box-sizing:border-box;overflow:auto;z-index:100;background:#fff;padding:24px}
 .planner-running .planner-exit{display:block;margin:0 0 16px auto}
 .planner-running .subject-input,.planner-running .no-print:not(.planner-exit){display:none}
}

@media screen {
 .board-print-actions{display:none;margin:0 0 20px}
 .board-print-preview .board-print-actions{display:block}
 .board-print-preview .visual-toolbar,.board-print-preview main>.intro,.board-print-preview main>.hint,.board-print-preview #sessionView{display:none!important}
 .board-print-preview .sheet .no-print{display:none!important}
 .board-print-preview #studentCard{display:block;background:white;padding:28px;border:1px solid #d8e2ef}
 .board-print-preview .sheet{box-shadow:0 4px 16px #17283f18}
 .board-print-preview .sheet input,.board-print-preview .sheet textarea,.board-print-preview .sheet button{pointer-events:none}
}
@media screen {
 .board-print-preview #planner input[type=text],.board-print-preview #planner textarea{display:none}
 .board-print-preview #planner .print-only{display:block;white-space:pre-wrap;overflow-wrap:anywhere;min-height:36px}
 .board-print-preview #planner .assignment-print{min-height:65px}
 .planner-running #planner th input{pointer-events:none;border-color:transparent;background:transparent}
}

.file-bar .file-page-title{font:700 19px/1.3 system-ui;margin:2px 0 10px;color:#17283f;letter-spacing:normal}
/* Shared editor rhythm: wrap control groups without touching adjacent sections. */
@media screen{
 .visual-toolbar{gap:16px;align-items:flex-start}
 .visual-toolbar label:not(:has(input[type=checkbox])){line-height:1.5}
 .visual-toolbar .controls,.editor-fields .controls{gap:12px 16px;align-items:flex-end}
 .editor-fields>div{min-width:0}.editor-fields>div>button{margin-block:6px}
 .visual-workspace .actions,.visual-workspace .picker-actions,.visual-workspace .card-actions{gap:10px;flex-wrap:wrap;margin-block:12px}
 .visual-workspace fieldset{margin-block:8px 16px;min-width:0}
 .file-modes{gap:8px}.file-document-row{gap:12px 16px}
 .board-print-actions button+button{margin-left:10px}
 .file-dialog .file-library-tabs{flex-wrap:wrap}
}
@media screen{
 .visual-workspace .builder-left,.visual-workspace .builder-right{min-width:0}
 .visual-workspace .builder-right .wheel-holder{width:min(100%,520px);height:auto;aspect-ratio:1}
 .visual-workspace .builder-right .wheel-svg{width:100%;height:100%;min-width:0}
 @media(max-width:1000px){.visual-workspace .builder-layout{grid-template-columns:minmax(0,1fr)}}
 @media(max-width:480px){.visual-workspace .builder-left{padding:14px}.visual-workspace .step-row{grid-template-columns:40px minmax(0,1fr) 48px 24px;gap:8px}.visual-workspace .step-minutes-input{width:48px}.visual-workspace .step-row .min-label{display:none}}
}
