:root{--ink:#18352c;--muted:#67736d;--paper:#f4f2ec;--line:#d8d7d0}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{color:var(--ink);background:var(--paper);font-family:Arial,Helvetica,sans-serif}button,input{font:inherit}.app-shell{flex-direction:column;height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);background:#fff;flex:none;justify-content:space-between;align-items:center;height:72px;padding:0 24px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand>span{color:#fff;background:#173e31;border-radius:4px;place-items:center;width:42px;height:36px;font-weight:800;display:grid}.brand b,.brand small{display:block}.brand b{font-family:Georgia,serif;font-size:19px}.brand small,.overline{letter-spacing:1.5px;color:#7b8781;font-size:9px;font-weight:800}.brand small{margin-top:3px}.status{color:#6c7772;font-size:11px}.status i{background:#6da87d;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.blank{color:#24483c;background:#fff;border:1px solid #b9c2bd;border-radius:7px;padding:10px 15px;font-size:11px;font-weight:800}.editor{flex:1;grid-template-columns:290px minmax(620px,1fr);min-height:0;display:grid}.palette{border-right:1px solid var(--line);background:#fff;padding:25px 20px;overflow:auto}.palette h1{margin:7px 0;font-family:Georgia,serif;font-size:26px}.palette>p{color:var(--muted);margin:0 0 21px;font-size:12px;line-height:1.5}.palette-list{gap:10px;display:grid}.palette-piece{--light:#fff;--main:#555;--text:#111;background:var(--light);min-height:58px;color:var(--text);border:1px solid var(--main);border-left:5px solid var(--main);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:10px;padding:10px 21px 10px 12px;display:flex;position:relative}.palette-piece:hover{outline:3px solid var(--soft)}.palette-piece:active{cursor:grabbing}.palette-piece b{font-size:11px;line-height:1.25}.grip{color:var(--main);font-size:18px}.mini-tab{background:var(--main);border-radius:0 12px 12px 0;width:9px;height:22px;position:absolute;right:-9px}.palette-help{border-top:1px solid var(--line);margin-top:24px;padding-top:17px}.palette-help b{font-size:11px}.palette-help p{color:var(--muted);margin-bottom:0;font-size:10px;line-height:1.5}.canvas-wrap{flex-direction:column;min-width:0;display:flex}.canvas-head{border-bottom:1px solid var(--line);background:#fbfaf7;flex:none;justify-content:space-between;align-items:center;height:68px;padding:0 25px;display:flex}.canvas-head strong{margin-top:5px;font-family:Georgia,serif;font-size:17px;display:block}.legend{color:#69756f;gap:18px;font-size:10px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.legend i{border:2px solid #7e8b85;border-radius:50%;width:14px;height:14px;display:inline-block}.legend .send{background:#7e8b85}.canvas{touch-action:none;background-color:#f2f0ea;background-image:linear-gradient(#d7d6d044 1px,#0000 1px),linear-gradient(90deg,#d7d6d044 1px,#0000 1px);background-size:24px 24px;flex:1;min-height:500px;position:relative;overflow:auto}.canvas.empty{place-items:center;display:grid}.empty-state{text-align:center;color:#6c7872;pointer-events:none}.empty-state h2{color:var(--ink);margin:17px 0 7px;font-family:Georgia,serif;font-size:24px}.empty-state p{font-size:12px}.empty-pieces{justify-content:center;display:flex}.empty-pieces span{background:#fbfaf7;border:2px solid #aab3ae;width:48px;height:32px}.empty-pieces span+span{margin-left:4px}.course-piece{--light:#fff;--main:#777;--text:#111;background:var(--light);border:2px solid var(--main);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:10px;flex-direction:column;justify-content:center;width:218px;height:116px;padding:18px 25px;display:flex;position:absolute}.course-piece:active{cursor:grabbing}.course-piece.selected{outline:4px solid var(--soft);outline-offset:3px}.piece-kicker{letter-spacing:1.2px;color:var(--dark);align-items:center;gap:6px;font-size:8px;font-weight:800;display:flex}.piece-kicker span{background:var(--main);border-radius:50%;width:9px;height:9px}.course-piece input{width:100%;color:var(--text);background:0 0;border:0;border-bottom:1px solid #0000;outline:0;padding:6px 0;font-family:Georgia,serif;font-size:16px;font-weight:700;line-height:1.2}.course-piece input:focus{border-bottom-color:var(--main);background:#fff6}.socket{background:var(--paper);border:2px solid var(--main);border-left:0;border-radius:0 24px 24px 0;width:23px;height:38px;position:absolute;top:39px;left:-2px}.plug{background:var(--main);border-radius:0 24px 24px 0;width:20px;height:38px;position:absolute;top:39px;right:-20px}.delete{color:var(--dark);opacity:0;background:0 0;border:0;font-size:17px;position:absolute;top:5px;right:7px}.course-piece:hover .delete,.course-piece.selected .delete{opacity:1}.snap-ring{pointer-events:none;border:3px dashed #2c8b58;border-radius:50%;width:44px;height:58px;animation:.7s infinite alternate pulse;position:absolute;top:29px;left:-14px}.snap-target{outline-offset:5px;outline:3px solid #70bf8f}@keyframes pulse{to{transform:scale(1.1)}}@media (width<=760px){.editor{grid-template-columns:220px minmax(570px,1fr)}.palette{padding:18px 12px}.topbar{padding:0 12px}.status,.brand small{display:none}}.phase-stack{flex-direction:column;align-items:center;width:218px;display:flex;position:absolute}.phase-stack>.course-piece{height:auto;min-height:116px;padding-bottom:11px;position:relative;top:auto!important;left:auto!important}.time-chip{color:#fff;z-index:1;background:#462037;border-radius:22px;align-items:center;gap:7px;height:38px;margin-bottom:-1px;padding:0 23px;font-size:12px;display:flex}.activity-chip{border:2px solid var(--main);text-align:center;color:var(--text);border-radius:9px;margin-top:2px;padding:7px;font-size:11px;font-weight:800}.build-down{color:var(--dark);background:0 0;border:0;align-self:center;padding:7px 4px 0;font-size:9px;font-weight:800}.theme-piece{border:1px solid var(--light);background:var(--light);width:218px;min-height:66px;color:var(--text);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;margin-top:10px;padding:9px;display:flex;position:relative}.theme-piece small{margin-bottom:5px;font-size:9px}.theme-piece b{background:var(--main);color:#fff;text-align:center;border-radius:15px;max-width:190px;padding:5px 15px;font-size:11px}.vertical-link{background:#fff;border:2px solid #c8c9c5;border-radius:50%;width:12px;height:12px;position:absolute;top:-11px}.drawer-backdrop{z-index:30;background:#13251e77;position:fixed;inset:0}.build-drawer{background:#fff;width:min(420px,95vw);padding:32px;position:absolute;top:0;bottom:0;right:0;overflow:auto}.close-drawer{background:0 0;border:0;font-size:25px;position:absolute;top:14px;right:18px}.build-drawer h2{margin:8px 0;font-family:Georgia,serif;font-size:25px}.build-drawer>p{color:var(--muted);font-size:11px;line-height:1.5}.build-drawer>label,.drawer-themes label{margin:18px 0;display:block}.build-drawer label b,.drawer-themes>b{letter-spacing:.7px;font-size:10px}.build-drawer select{background:#fff;border:1px solid #cfd4d1;border-radius:7px;width:100%;margin-top:7px;padding:10px;font-size:11px;display:block}.drawer-themes{border-top:1px solid var(--line);margin-top:23px;padding-top:20px}.drawer-themes label span{font-size:10px;font-weight:700}.done{color:#fff;background:#173e31;border:0;border-radius:7px;width:100%;padding:12px;font-size:11px;font-weight:800}.palette-piece{--light:#f8ebf3!important;--soft:#c68aa9!important;--main:#872d5a!important;--text:#462037!important}.header-metrics{align-items:center;gap:24px;display:flex}.total-time{background:#fbfaf7;border:1px solid #d6d4ce;border-radius:8px;min-width:145px;padding:7px 13px}.total-time small,.total-time b{display:block}.total-time small{letter-spacing:1.2px;color:#7b8781;font-size:8px}.total-time b{color:#462037;margin-top:3px;font-size:12px}.phase-stack{min-height:116px}.phase-stack>.time-chip{white-space:nowrap;margin:0;position:absolute;top:-38px;left:50%;transform:translate(-50%)}.activity-chip{color:#fff!important}.build-drawer{background:#fbfaf7}.build-drawer>label{background:#fff;border:1px solid #dedbd4;border-radius:10px;padding:13px}.drawer-themes label{background:#fff;border:1px solid #dedbd4;border-left:6px solid #872d5a;border-radius:9px;margin:10px 0;padding:10px}.drawer-themes label:nth-of-type(2){border-left-color:#767671}.drawer-themes label:nth-of-type(3){border-left-color:#ffcd00}.drawer-themes label:nth-of-type(4){border-left-color:#4d87a2}.drawer-themes label:nth-of-type(5){border-left-color:#f05a23}.build-drawer select{background:#f7f6f2;border-color:#d4d1ca}.build-drawer select:focus{border-color:#872d5a;outline:3px solid #c68aa9}@media (width<=760px){.header-metrics{gap:6px}.total-time{min-width:115px}.total-time b{font-size:10px}}.theme-piece{min-height:82px;padding:12px 10px}.theme-piece small{text-align:center;margin-bottom:8px;font-size:14px;font-weight:700;line-height:1.35}.theme-piece b{padding:7px 17px;font-size:13px;line-height:1.25}.drawer-themes label{padding:14px 13px}.drawer-themes label span{font-size:14px;font-weight:800;line-height:1.35;display:block}.drawer-themes label select{padding:11px;font-size:13px}.theme-piece{height:auto;overflow:visible}.theme-piece small{white-space:normal;overflow-wrap:anywhere;max-width:100%;font-size:16px;overflow:visible}.theme-piece small:first-letter{font-size:26px}.theme-piece b{white-space:normal;overflow-wrap:anywhere;max-width:100%;overflow:visible}.drawer-themes label span{white-space:normal;overflow-wrap:anywhere;font-size:16px}.drawer-themes label span:first-letter{font-size:26px}.custom-theme-input{background:#fff;border:2px solid #872d5a;border-radius:7px;width:100%;margin-top:9px;padding:11px;font-size:14px;display:block}.custom-theme-input:focus{outline:3px solid #c68aa9}.personal-note{color:#5e6b65;background:#fff;border:1px solid #d9d4cc;border-radius:8px;padding:11px;font-size:11px;line-height:1.45}.choice-section{background:#fff;border:1px solid #d8d5ce;border-radius:12px;margin:22px 0;padding:16px;position:relative}.section-heading{align-items:center;gap:11px;margin-bottom:13px;display:flex}.section-heading em{color:#fff;background:#872d5a;border-radius:50%;flex:0 0 30px;place-items:center;height:30px;font-size:16px;font-style:normal;font-weight:900;display:grid}.section-heading b,.section-heading small{display:block}.section-heading b{font-size:14px}.section-heading small{color:#6c7772;margin-top:3px;font-size:10px}.choice-section>select{background:#f8f7f3;border:1px solid #cfcac1;border-radius:8px;width:100%;padding:11px;font-size:13px;display:block}.activity-pieces{grid-template-columns:1fr 1fr;gap:8px;display:grid}.activity-pieces button{border:2px solid var(--activity);color:#18352c;text-align:center;background:#fff;border-radius:9px;min-height:45px;padding:8px;font-size:12px;font-weight:750}.activity-pieces button:hover{background:#f3f1ec}.activity-pieces button.active{background:var(--activity);color:#fff}.drawer-themes.choice-section{border-top:1px solid #d8d5ce;padding-top:16px}.drawer-themes.choice-section>.section-heading{margin-bottom:15px}.drawer-themes.choice-section>label{margin:10px 0}@media (width>=900px){.build-drawer{width:min(720px,100vw - 40px);padding:22px 26px}.build-drawer h2{margin:5px 0;font-size:24px}.build-drawer>p{margin:5px 0 10px}.choice-section{margin:12px 0;padding:12px 14px}.activity-pieces{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.activity-pieces button{min-height:39px;padding:6px;font-size:11px}.drawer-themes.choice-section{grid-template-columns:1fr 1fr;gap:8px 10px;display:grid}.drawer-themes.choice-section>.section-heading{grid-column:1/-1;margin-bottom:2px}.drawer-themes.choice-section>label{margin:0;padding:9px 11px}.drawer-themes label span{font-size:13px}.drawer-themes label span:first-letter{font-size:20px}.drawer-themes label select{margin-top:5px;padding:8px;font-size:11px}.personal-note{margin:8px 0;padding:8px}.done{margin-top:2px}}@media (height<=800px) and (width>=700px){.build-drawer{padding-top:15px;padding-bottom:15px}.build-drawer>p,.personal-note{display:none}.choice-section{margin:8px 0;padding:9px 12px}.section-heading{margin-bottom:7px}.section-heading em{flex-basis:25px;width:25px;height:25px;font-size:13px}.activity-pieces button{min-height:34px}.drawer-themes.choice-section>label{padding:6px 9px}.done{padding:9px}}@media (width<=899px){.editor{grid-template-columns:220px minmax(0,1fr)}.canvas{min-width:0}.build-drawer{width:min(620px,100vw);padding:22px}.activity-pieces{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.topbar{height:62px}.brand b{font-size:16px}.blank{padding:8px;font-size:10px}.editor{grid-template-columns:170px minmax(0,1fr);display:grid}.palette{padding:14px 8px}.palette h1{font-size:20px}.palette-piece{padding-left:8px}.canvas-head{padding:0 10px}.legend{display:none}.build-drawer{padding:18px 14px}.activity-pieces{grid-template-columns:1fr 1fr}.drawer-themes.choice-section{padding:10px}.theme-piece,.phase-stack,.phase-stack>.course-piece{width:200px}}.brand>.cfu-logo{object-fit:contain;object-position:left center;width:118px;height:42px;display:block}.brand>div{border-left:1px solid #d7d4cd;margin-left:2px;padding-left:13px}@media (width<=620px){.brand>.cfu-logo{width:86px;height:34px}.brand>div{padding-left:8px}}.choice-section>summary{cursor:pointer;margin-bottom:0;list-style:none}.choice-section>summary::-webkit-details-marker{display:none}.choice-section>summary>i{margin-left:auto;font-size:18px;font-style:normal;transition:transform .2s}.choice-section[open]>summary{margin-bottom:13px}.choice-section[open]>summary>i{transform:rotate(180deg)}.choice-section:not([open]){padding-top:10px;padding-bottom:10px}.choice-section:not([open]) .section-heading{margin:0}.choice-section:not([open]) .section-heading small{display:none}@media (width>=900px){.drawer-themes.choice-section[open]{display:grid}.drawer-themes.choice-section[open]>summary{grid-column:1/-1}.drawer-themes.choice-section:not([open]){display:block}}.custom-time-input{grid-template-columns:1fr 120px;align-items:center;gap:4px 12px;background:#f8ebf3!important;border:1px solid #c68aa9!important;border-radius:9px!important;margin:10px 0 0!important;padding:11px 12px!important;display:grid!important}.custom-time-input span{color:#462037;font-size:12px;font-weight:800}.custom-time-input input{background:#fff;border:2px solid #872d5a;border-radius:7px;grid-area:1/2/3;width:100%;padding:9px;font-size:15px}.custom-time-input input:focus{outline:3px solid #c68aa9}.custom-time-input small{color:#6a254a;font-size:9px}
