body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.edge-label,.zone-title,.phase-label,.map-annotation{font-family:system-ui,sans-serif}
.app-header{gap:12px;padding:0 18px}.header-title{margin-left:8px;padding-left:16px;min-width:100px}.header-title h1{font-size:14px;max-width:210px;line-height:1.4}.global-search{position:relative;flex:1;max-width:440px;min-width:170px}.global-search>input{width:100%;height:40px;border:1px solid #dce5ef;background:#f7f9fc;border-radius:9px;padding:9px 32px 9px 14px;color:#2b4058;font-size:15px}.global-search>kbd{position:absolute;right:12px;top:11px;font:14px monospace;color:#8598af}#search-results{position:absolute;left:0;right:0;top:46px;max-height:min(480px,65vh);overflow:auto;background:#fff;border:1px solid #dbe5f2;border-radius:12px;box-shadow:0 16px 40px #243e5b25;padding:6px;z-index:60}#search-results button{width:100%;text-align:left;padding:11px 12px;display:block;border-radius:7px}#search-results button[aria-selected=true],#search-results button:hover{background:#edf3ff}#search-results strong{display:block;font-size:15px;font-weight:600}#search-results small{display:block;color:#7c8fa5;font-size:13px;margin-top:3px}.search-empty{padding:14px;color:#71869f;font-size:14px}.header-actions{flex-shrink:0}#edit-toolbar{height:54px;display:flex;align-items:center;gap:8px;padding:7px 20px;border-bottom:1px solid #dce5f0;background:#f8fbff}#edit-toolbar .btn{min-height:32px;padding:5px 12px}.edit-badge{font-size:12px;letter-spacing:1px;color:#3268bf;font-weight:700;margin-right:8px}#save-state{margin-left:auto;font-size:13px;color:#70849c}.editing .layout{height:calc(100svh - var(--head) - 54px)}.editing .map-node{touch-action:none;cursor:move}.editing .map-node:hover{box-shadow:0 0 0 4px #3b6fe51a}.editor-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.editor-dialog{border:1px solid #dce5ef;border-radius:16px;padding:0;width:min(760px,calc(100vw - 28px));max-height:90dvh;color:#2d4157;box-shadow:0 24px 90px #11284640}.editor-dialog::backdrop{background:#213a5655;backdrop-filter:blur(3px)}.editor-dialog form{margin:0}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;position:sticky;top:0;z-index:3;background:white;border-bottom:1px solid #e4eaf1}.dialog-head h2{font-size:20px;font-weight:600}.dialog-head .btn{font-size:24px;line-height:1;padding:5px 12px}#editor-body{padding:22px 24px}#editor-footer{padding:14px 24px;display:flex;justify-content:flex-end;gap:10px;position:sticky;bottom:0;background:#fff;border-top:1px solid #e4eaf1}#editor-footer:empty{display:none}#editor-error{color:#b83232;font-size:15px;padding:0 24px 16px}#editor-error:empty{display:none}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px;font-size:14px;font-weight:600}.field input,.field textarea,.field select{font:15px/1.5 "Segoe UI",Arial,sans-serif;color:#263d56;background:#fff;border:1px solid #ccd9e9;border-radius:8px;padding:10px 12px;width:100%;font-weight:400}.field textarea{resize:vertical;min-height:85px}.field-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.profile-picks{border:1px solid #e0e8f2;border-radius:9px;padding:12px;margin:15px 0}.profile-picks legend{font-size:14px;padding:0 6px}.profile-picks label{display:inline-flex;align-items:center;gap:5px;font-size:14px;margin:6px 12px 6px 0}.muted{color:#73869c;font-size:14px;line-height:1.7;margin:10px 0 17px}.notice{padding:12px 14px;border:1px solid #ebd8aa;background:#fffbf1;border-radius:9px;font-size:14px;margin-bottom:16px}.danger{color:#af3c42!important;border-color:#edd8db!important}.danger:hover{background:#fff4f4!important}.danger-zone{display:flex;flex-wrap:wrap;gap:10px;border-top:1px solid #edf0f5;padding-top:16px;margin-top:12px}.dialog-tools{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.structure-list{display:flex;flex-direction:column;gap:10px}.structure-item{border:1px solid #dce5f1;border-radius:10px;background:#fff;overflow:hidden}.structure-row{display:flex;align-items:center;gap:7px;background:#f7f9fd;padding:10px 12px}.structure-row strong{margin-right:auto;font-size:14px}.structure-row .btn{padding:4px 10px;min-height:30px;font-size:13px}.drag-handle{cursor:grab;color:#8199b5;font-size:24px}.view-list{padding:10px 14px 12px 38px;display:flex;flex-direction:column;gap:7px}.view-row{display:flex;gap:7px}.view-row .btn{min-height:32px;padding:5px 10px;font-size:13px}.view-open{flex:1;justify-content:flex-start}.rule-tree{border-top:1px solid #e5ebf2}.rule-module{border-bottom:1px solid #e5ebf2;padding:12px 0}.rule-module summary{cursor:pointer;font-size:14px;font-weight:600;line-height:1.6}.rule-module summary::marker{color:#8ba3c2}.rule-children{padding:0 0 8px 24px}.rule-item{display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.7;padding:7px 0}.rule-item input{margin-top:4px;accent-color:#3b6fe5;width:15px;height:15px;flex-shrink:0}.rule-parent{color:#b14a4a;font-weight:600}.rule-view{padding:5px 0}.rule-view summary,.rule-children>details>summary{font-size:14px;font-weight:500}.rule-locations{padding-left:22px}.audience{font-size:12px;font-weight:400;color:#7c91aa;margin-left:7px}.rules-summary{background:#eef6f3;color:#33745e;padding:12px 14px;border-radius:9px;font-size:14px;margin:12px 0 16px}.inherited-hidden{opacity:.5}.shortcut-row{padding:16px 0;border-bottom:1px solid #e5ebf2}.shortcut-row strong{font-size:14px}.shortcut-row small{display:block;font-size:13px;color:#73879e;margin-top:5px;overflow-wrap:anywhere}.shortcut-row .dialog-tools{margin:12px 0 0}.editor-dialog a.btn{text-decoration:none}#embed-code{font-family:monospace;min-height:140px;font-size:14px}.editor-dialog button:focus-visible,.editor-dialog select:focus-visible,.editor-dialog textarea:focus-visible{outline:3px solid #f1b264;outline-offset:2px}.map-node.register{border-color:#ddd1b9;background:#fffdfa}.edge.blue{stroke:#3b6fe5}
@media(max-width:1250px){.brand-name,.brand-tag{display:none}.header-title h1{max-width:160px}.app-header>.btn{font-size:13px;padding:7px 10px}.header-title{border:0;padding-left:0}.header-actions #period-button{font-size:0;gap:0}.header-actions #period-button svg{width:18px}}
@media(max-width:900px){:root{--head:112px}.app-header{height:112px;flex-wrap:wrap;gap:8px;padding:9px 14px;align-content:center}.brand{order:0}.header-title{order:1;flex:1}.header-title h1{max-width:none;font-size:14px}.global-search{order:6;max-width:none;flex-basis:100%}.global-search>input{height:36px}.global-search>kbd{top:9px}.header-actions{order:2}.app-header>.btn{order:3;min-height:31px;padding:6px 9px;font-size:13px}.help-btn{display:none}#search-results{top:41px}#edit-toolbar{height:90px;flex-wrap:wrap;padding:8px 12px;gap:6px}.editing .layout{height:calc(100svh - var(--head) - 90px)}.edit-badge{display:none}#edit-toolbar .btn{font-size:12px;padding:5px 9px;min-height:30px}#save-state{font-size:12px}.editor-dialog{width:calc(100vw - 16px);max-height:94dvh}.dialog-head{padding:14px 16px}.dialog-head h2{font-size:18px}#editor-body{padding:16px}#editor-footer{padding:12px 16px}.field-grid{grid-template-columns:repeat(2,1fr)}.structure-row{flex-wrap:wrap}.structure-row strong{flex:1;min-width:100px}.view-list{padding-left:14px}.rule-children{padding-left:14px}}
@media(max-width:500px){.header-title h1{font-size:14px}.header-title .icon{display:none}.header-actions{display:none}.brand-mark{width:27px;height:29px}.app-header{gap:6px;padding:8px 10px}.app-header>.btn{padding:5px 7px;font-size:12px}.header-title{margin:0}.global-search>input{font-size:14px}.map-legend{max-width:55%}.map-node{min-height:58px}}

/* One header inside the popup, with a reserved place for its accessible close control. */
.header-title{margin-left:0;padding-left:0;border-left:0;min-width:0}
.header-title h1{font-size:16px;max-width:250px}
.acflow-embedded-popup .app-header{padding-right:64px}
.map-area::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:url("watermark-logo.png"),url("watermark-logo.png"),url("watermark-logo.png");background-repeat:no-repeat;background-size:230px auto;background-position:12% 19%,85% 53%,25% 88%;opacity:.09}
@media(max-width:900px){
 :root{--head:104px}
 .app-header{height:var(--head);display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:40px 40px;gap:8px;padding:8px 12px;align-content:start}
 .acflow-embedded-popup .app-header{padding-right:12px;grid-template-columns:minmax(0,1fr) auto 40px}
 .header-title{grid-column:1;grid-row:1;margin:0}
 .header-title h1{font-size:14px;max-width:none;line-height:1.35}
 .global-search{grid-column:1/-1;grid-row:2;min-width:0;width:100%;max-width:none}
 .global-search>input{height:40px;font-size:15px}
 .global-search>kbd{top:11px}
 .header-actions{display:flex;grid-column:2;grid-row:1}
 .header-actions #period-button{width:38px;height:38px;min-height:38px;padding:8px}
 .acflow-has-controls{--head:148px}
 .acflow-has-controls .app-header{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:40px 40px 36px;gap:8px}
 .acflow-has-controls .header-title{grid-column:1/-1;margin-right:86px}
 .acflow-has-controls .header-actions{grid-column:3;justify-self:end;margin-right:44px}
 .acflow-has-controls:not(.acflow-embedded-popup) .header-title{margin-right:42px}
 .acflow-has-controls:not(.acflow-embedded-popup) .header-actions{margin-right:0}
 .app-header>.btn{grid-row:3;min-width:0;padding:6px 8px;font-size:12px}
 .map-area::before{background-size:170px auto;background-position:4% 18%,94% 52%,12% 86%}
 .editing .layout{height:calc(100svh - var(--head) - 90px)}
}

/* Course-specific costing policy editor; inherited by every Moodle theme. */
.costing-panel{padding:20px;border:1px solid #9ac7c7;border-radius:14px;background:#f3faf9;margin:0 0 22px;color:#102037}
.costing-panel h3{margin:0 0 10px;font-size:20px}.costing-panel .muted{line-height:1.6}
.costing-row{display:grid;grid-template-columns:minmax(0,1fr) 135px;gap:18px;align-items:center;padding:12px 0;border-top:1px solid #d8e7e4}
.costing-row small{display:block;color:#226c55;line-height:1.5;margin-top:5px;font-size:13px}.costing-row small.costing-hidden{color:#646d7a}
.costing-row select,.template-choice select{width:100%;min-height:42px;border:1px solid #9aaeb9;border-radius:7px;background:#fff;color:#102037;padding:8px;font:inherit}
.costing-advanced,.rule-history{padding:14px 0}.costing-advanced summary,.rule-history summary{cursor:pointer;font-weight:600}
.template-preview{margin-top:18px;padding:18px;background:#fff;border:1px solid #9ac7c7;border-radius:10px}
.template-preview h4{font-size:18px}.template-choice{display:grid;grid-template-columns:minmax(0,1fr) 175px;gap:15px;align-items:center;margin:12px 0}
.impact-list{max-height:220px;overflow:auto;padding-left:22px}.impact-list li{margin-bottom:9px}.history-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #dde5ea}
@media(max-width:600px){.costing-panel{padding:14px}.costing-row{grid-template-columns:minmax(0,1fr) 105px;gap:10px}.template-choice{grid-template-columns:1fr}.history-row{align-items:flex-start;flex-direction:column}.template-preview{padding:12px}}
.costing-panel .field select{font:inherit}
