:root{font-family:'DM Sans',Arial,sans-serif;color:#142f3a;background:#fff8ef;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:wait}a{color:inherit}button{border:1px solid #d2c9c5;border-radius:10px;background:#fffaf4;padding:11px 16px;color:inherit;font-weight:600}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #bd3857;outline-offset:3px}.primary{background:#a92c4b;color:white;border-color:#a92c4b}.wb-header{padding:22px 5vw;border-bottom:1px solid #e8ded7;display:flex;justify-content:space-between;align-items:center}.wb-brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-size:22px}.wb-brand img{border-radius:13px}.wb-brand span{font-size:14px;font-weight:400;color:#6e6266}.wb-header nav{display:flex;gap:20px;align-items:center}.wb-header nav a{text-decoration:none;font-weight:600}main{max-width:1440px;margin:auto;padding:44px 5vw 80px}.wb-intro{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px}.eyebrow{font-size:11px;letter-spacing:2px;color:#a92c4b;font-weight:700}h1{font-size:clamp(30px,4vw,52px);letter-spacing:-2px;margin:12px 0}h2{font-size:19px;margin:0 0 18px}.notice{background:#fbe8e9;padding:18px 22px;border-radius:12px;line-height:1.6}.notice a{font-weight:bold;white-space:nowrap}#status{min-height:22px;color:#94334d} .workbench{display:grid;grid-template-columns:230px minmax(0,1fr);border:1px solid #ddd3cd;border-radius:22px;overflow:hidden;background:#fffdf9;box-shadow:0 20px 60px #3d172409}aside{padding:24px 18px;background:#f4ede7;border-right:1px solid #ddd3cd}#empty,.quiet{color:#766b6b;font-size:13px;line-height:1.6}#widget-list{display:grid;gap:8px}#widget-list button{text-align:left;overflow-wrap:anywhere;background:transparent;border-color:transparent}#widget-list button[aria-current=true]{background:white;border-color:#e8a2b1;color:#9c2744}.editor{min-width:0;padding:28px}.stage-head{display:flex;justify-content:space-between;color:#786a71;font-size:11px;letter-spacing:1px;margin-bottom:12px}.stage{position:relative;padding:32px 20px;display:grid;place-items:center;min-height:220px;border-radius:15px;background-color:#e5dfe3;background-image:linear-gradient(45deg,#ffffff55 25%,transparent 25%,transparent 75%,#ffffff55 75%),linear-gradient(45deg,#ffffff55 25%,transparent 25%,transparent 75%,#ffffff55 75%);background-size:24px 24px;background-position:0 0,12px 12px}.preview-size{width:100%;aspect-ratio:4;position:relative}#preview{position:absolute;width:800px;height:200px;transform-origin:top left}#paused{position:absolute;background:#fff9;padding:10px 18px;border-radius:10px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:26px 0}.fields label{display:grid;gap:8px;font-size:13px;font-weight:600}.fields .wide{grid-column:1/-1}input,select{min-width:0;width:100%;background:white;border:1px solid #d8ced0;padding:12px 14px;border-radius:9px;color:#18333f}input[type=color]{padding:4px;width:70px;height:42px}.fields .toggle{display:flex;align-items:center;justify-content:end;gap:9px}.toggle input{width:18px;height:18px;accent-color:#a92c4b}.form-actions{display:flex;align-items:center;gap:16px}.form-actions span{font-size:12px;color:#776a6e;line-height:1.5}#source-panel{margin-top:28px;padding-top:26px;border-top:1px solid #e8dde0}#source-panel label{font-size:13px}.source-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.source-heading h2{margin:0}.source-heading button{font-size:12px}.source-input{display:flex;gap:8px;margin-top:8px}#source-url{font-family:monospace;font-size:12px}#source-panel p{font-size:13px;line-height:1.7}[hidden]{display:none!important}@media(max-width:800px){.workbench{grid-template-columns:1fr}aside{border-right:0;border-bottom:1px solid #ddd3cd}#widget-list{grid-template-columns:repeat(2,minmax(0,1fr))}.editor{padding:20px}.wb-intro{align-items:start}.wb-intro>button{flex-shrink:0;margin-top:10px}.stage{padding:20px 12px;min-height:150px}h1{letter-spacing:-1px}}@media(max-width:480px){main{padding:28px 16px}.wb-header{padding:16px}.wb-brand{font-size:18px}.wb-brand span{display:none}.wb-header nav{gap:10px;font-size:13px}.wb-intro{display:block}.fields{grid-template-columns:1fr}.fields .toggle{justify-content:start}.form-actions{align-items:start;flex-direction:column}.source-heading{gap:10px}}

#schedule-fields{border:1px solid #41545f;border-radius:14px;margin:22px 0;padding:20px}#schedule-fields[hidden]{display:none}#schedule-fields legend{font-weight:700;padding:0 8px}#schedule-fields p,#schedule-fields small{font-size:13px;line-height:1.5;color:#655b60}#schedule-status{color:#276a49!important}.preset-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}#schedule-toggles{margin-top:18px}

#preview-demo{font-size:11px;padding:5px 10px}#preview-demo[aria-pressed=true]{background:#a92c4b;color:white}.stage-head{align-items:center;gap:12px;flex-wrap:wrap}

/* Keep each checkbox on a fixed column, independent of label length. */
#schedule-toggles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px}
#schedule-toggles .toggle{display:grid;grid-template-columns:18px minmax(0,1fr);justify-content:start;align-items:start;gap:12px;min-width:0;min-height:32px;padding:6px 0;line-height:20px}
#schedule-toggles .toggle input{margin:1px 0 0;padding:0;width:18px;height:18px}
#schedule-toggles .toggle span{min-width:0;overflow-wrap:anywhere;text-align:left}
@media(max-width:600px){#schedule-toggles{grid-template-columns:1fr}}
/* App shell: only the library and inspector own scrollable regions. */
html,body{height:100%;overflow:hidden}body{display:flex;flex-direction:column;height:100dvh}.wb-header{height:70px;flex:none;padding:10px 24px}.wb-brand{font-size:20px}.wb-brand img{width:40px;height:40px}.wb-header nav{gap:14px}main{width:100%;max-width:none;min-height:0;flex:1;display:flex;flex-direction:column;padding:16px 20px 20px}.wb-intro{flex:none;margin:0 0 10px;gap:12px}.wb-intro .eyebrow{display:none}h1{font-size:23px;letter-spacing:-.7px;margin:0}.wb-intro>button{margin:0}.notice{flex:none;padding:8px 12px;font-size:12px;line-height:1.4}#status{flex:none;height:20px;min-height:20px;font-size:12px;margin:5px 0}.workbench{flex:1;min-height:0;grid-template-columns:240px minmax(0,1fr);border-radius:16px;box-shadow:none}aside{min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:18px 12px}.library-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none;margin-bottom:14px}.library-head h2{font-size:16px;margin:0}#widget-count{font-size:12px;white-space:nowrap;background:#e8ded7;border-radius:6px;padding:4px 7px}#widget-list{display:flex;flex-direction:column;gap:12px;overflow:auto;min-height:0;padding:2px 3px 8px;scrollbar-width:thin}#widget-list .widget-card{flex:none;padding:8px;background:#fffaf5;border:1px solid #e3d9d4;border-radius:11px;display:grid;gap:6px;width:100%;text-align:left}#widget-list .widget-card[aria-current=true]{border-color:#a92c4b;box-shadow:0 0 0 1px #a92c4b}.widget-card strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-meta{font-size:10px;color:#776a6e;font-weight:400}.card-preview{width:100%;aspect-ratio:4;position:relative;overflow:hidden;border-radius:6px;background:repeating-conic-gradient(#ede6e8 0% 25%,#f9f5f6 0% 50%) 0/12px 12px}.card-preview .wb-overlay{width:800px;height:200px;position:absolute;transform-origin:top left;pointer-events:none}.editor{display:grid;grid-template-columns:minmax(240px,1fr) 360px;padding:0;min-height:0;overflow:hidden}.preview-pane{min-width:0;min-height:0;display:flex;flex-direction:column;padding:20px;background:#f9f3ef}.stage-head{flex:none;font-size:10px;letter-spacing:.5px;gap:8px}.stage{flex:1;min-height:0;padding:24px 16px;overflow:hidden}.preview-size{width:100%;max-width:800px;max-height:100%;aspect-ratio:4}.inspector{display:flex;flex-direction:column;min-height:0;min-width:0;border-left:1px solid #e3d9d4;background:#fffdf9}.editor-tabs{display:flex;gap:4px;flex:none;padding:12px;border-bottom:1px solid #e8dde0}.editor-tabs button{flex:1;font-size:12px;padding:9px 8px;background:transparent;border-color:transparent}.editor-tabs button[aria-pressed=true]{background:#f8e7eb;color:#9c2744}.editor-tabs button:disabled{cursor:default;opacity:.4}.inspector-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:16px}.inspector .fields{grid-template-columns:minmax(0,1fr);gap:16px;margin:0}.inspector .fields .toggle{justify-content:start}.inspector .fields label{font-size:12px}.inspector input,.inspector select{padding:10px;font-size:12px}.inspector .fields .wide{grid-column:auto}.inspector #schedule-fields{margin:0;border:0;border-radius:0;padding:0;min-width:0}.inspector #schedule-fields legend{display:none}.inspector #schedule-fields p{margin:0 0 12px;font-size:11px}.inspector #schedule-fields small{font-size:11px;font-weight:400}.inspector #schedule-toggles{margin:18px 0 0;grid-template-columns:minmax(0,1fr);gap:5px}.inspector #schedule-toggles .toggle{font-size:12px;min-height:30px}.inspector .preset-row{gap:5px}.inspector .preset-row button{padding:8px;font-size:11px}.form-actions{flex:none;padding:12px;border-top:1px solid #e8dde0;display:flex;flex-direction:row;align-items:center;gap:8px}.form-actions #save{flex:1}.form-actions button{font-size:12px;padding:11px}.form-actions #delete-widget{color:#9c2744}.inspector #source-panel{border:0;margin:0;padding:0}.inspector .source-heading{align-items:start;gap:8px}.inspector .source-heading h2{font-size:16px}.inspector .source-input{flex-wrap:wrap}.inspector .source-input input{flex:1 1 180px}.inspector #source-panel p,#source-empty{font-size:12px;line-height:1.6}.editor:not([data-tab=design]) .design-fields,.editor:not([data-tab=schedule]) #schedule-fields,.editor:not([data-tab=obs]) #source-panel,.editor:not([data-tab=obs]) #source-empty{display:none!important}
@media(max-width:1150px){.workbench{grid-template-columns:200px minmax(0,1fr)}.editor{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(140px,30%) minmax(0,1fr)}.preview-pane{padding:12px}.stage{padding:8px 12px}.preview-size{width:min(100%,480px)}.inspector{border-left:0;border-top:1px solid #e3d9d4}.inspector .design-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.inspector .design-fields .wide{grid-column:1/-1}.inspector #schedule-toggles{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-tabs{padding:6px 12px}.inspector-scroll{padding:12px 16px}}
@media(max-width:650px){.wb-header{height:54px;padding:8px 12px}.wb-brand{font-size:16px}.wb-brand img{height:32px;width:32px}.wb-header nav{font-size:12px;gap:8px}.wb-header nav button{padding:6px 9px}main{padding:10px 10px 12px}.wb-intro{display:flex;align-items:center}h1{font-size:17px}.wb-intro>button{font-size:11px;padding:9px}.workbench{display:flex;flex-direction:column}aside{flex:none;height:110px;padding:8px;border-right:0;border-bottom:1px solid #ddd3cd}.library-head{margin-bottom:4px}.library-head h2{font-size:12px}#widget-count{font-size:10px;padding:2px 5px}#empty{margin:6px 0;font-size:11px}#widget-list{flex-direction:row;gap:8px;overflow:auto;padding:1px 2px 3px}#widget-list .widget-card{width:145px;padding:4px;gap:2px}.widget-card strong{font-size:10px}.card-meta{display:none}.editor{flex:1;width:100%;grid-template-rows:minmax(100px,25%) minmax(0,1fr)}.preview-pane{padding:8px}.stage-head{margin-bottom:5px;font-size:8px}.stage{padding:5px}.preview-size{width:min(100%,360px)}.inspector .design-fields{grid-template-columns:minmax(0,1fr)}.inspector .design-fields .wide{grid-column:auto}.inspector #schedule-toggles{grid-template-columns:minmax(0,1fr)}.notice{font-size:10px;padding:5px 8px}#status{font-size:10px;height:16px;min-height:16px;margin:3px 0}}

#new-widget:disabled,#save:disabled,#delete-widget:disabled{cursor:not-allowed}

.access-gate{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:16px;border:1px solid #e3d9d4;border-radius:16px;background:#fffdf9}.access-gate h2{margin:0;font-size:24px}.access-gate p{max-width:520px;line-height:1.6;margin:0;color:#655b60}.access-gate>div{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.access-gate a{padding:11px 16px;border:1px solid #d2c9c5;border-radius:10px;text-decoration:none;font-size:13px;font-weight:600}
#calendar-fields{margin-bottom:18px}.editor.preview-focus{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.editor.preview-focus .inspector{display:none}#expand-preview{font-size:11px;padding:5px 10px}#expand-preview[aria-pressed=true]{background:#a92c4b;color:white}.preview-size{flex:none}.inspector #calendar-fields{margin-bottom:18px}
/* The preview canvas follows the selected widget's dimensions, including 16:9 calendars. */
.preview-size{max-width:none;max-height:none}#preview{top:0;left:0}

.wb-brand-actions{display:flex;align-items:center;gap:20px;min-width:0}.wb-header .wb-home{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:10px 16px;border-radius:9px;background:#0876d1;color:#fff;font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap}.wb-header .wb-home:hover{background:#0560ad}.wb-header .wb-home:focus-visible{outline:3px solid #65b7ff;outline-offset:3px}@media(max-width:650px){.wb-brand-actions{gap:10px}.wb-header .wb-home{font-size:11px;padding:9px 10px}.wb-brand strong span{display:none}}

.embed-section{border-top:1px solid #dfd5d1;margin-top:20px;padding-top:16px}.embed-section h3{font-size:16px;margin:0 0 12px}.embed-section textarea{box-sizing:border-box;width:100%;resize:vertical;font:11px/1.5 monospace;padding:10px;border:1px solid #d7cdca;border-radius:8px;margin:8px 0 12px;background:#fff;color:#18313b}.embed-section button{width:100%}

.design-tools{border:1px solid #d8ced0;border-radius:12px;padding:12px;margin-bottom:16px}.design-tools summary{cursor:pointer;font-weight:700}.design-tools label{display:grid;gap:6px;margin-top:12px}.design-tools input[type=range]{width:100%}.design-tools p{font-size:12px;line-height:1.5}

.preview-size{position:relative}.design-handles{position:absolute;pointer-events:none;border:1px dashed #3a87e9;box-sizing:border-box;z-index:4}.design-handles[hidden]{display:none}.design-handle{position:absolute;pointer-events:auto;width:16px;height:16px;padding:0!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;touch-action:none}.design-handle.e{right:-8px;top:50%;cursor:ew-resize}.design-handle.s{bottom:-8px;left:50%;cursor:ns-resize}.design-handle.se{right:-8px;bottom:-8px;cursor:nwse-resize}.design-selected{outline:2px dashed #4089df}.element-design{border:1px solid #ddd;border-radius:12px;margin-bottom:14px;padding:12px}.element-design label{display:grid;gap:6px;margin:8px 0}.element-design [hidden]{display:none}.element-design p{font-size:12px;line-height:1.5}

.design-handle:focus-visible{outline:2px solid #347fe0;outline-offset:2px}

.design-handle.e{top:8px;bottom:8px;height:auto}.design-handle.s{left:8px;right:8px;width:auto}.design-handles{transition:none}.design-selected{outline:none}
