@font-face{font-family:Prompt;src:url('./fonts/prompt-400.ttf')}@font-face{font-family:Prompt;src:url('./fonts/prompt-600.ttf');font-weight:600}@font-face{font-family:Prompt;src:url('./fonts/prompt-700.ttf');font-weight:700}*{box-sizing:border-box}body{margin:0;background:#f6f5f1;color:#253b34;font-family:Prompt,sans-serif;font-size:13px;--accent:#de6c36;--accent-soft:#faeee7}button,input,select,textarea{font:inherit}button,.file-button,select{cursor:pointer}button,.file-button{border:1px solid #dce1da;background:white;color:#30483d;padding:9px 15px;border-radius:8px;transition:background .15s,transform .15s}button:hover,.file-button:hover{background:#eef0e9}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #d98951;outline-offset:3px}.primary{background:var(--accent);color:white;border-color:transparent;text-shadow:0 1px 2px #0004}.primary:hover{filter:brightness(.92);background:var(--accent)}.dark{background:#284638;color:white}.text-button{border:0;background:transparent;padding:5px;color:#587360}.text-button:hover{background:#e9eee6}h1,h2,p{margin:0}h1{font-size:28px;letter-spacing:-.7px;font-weight:600}h2{font-size:24px;font-weight:600}.topbar{height:88px;background:#fff;border-bottom:1px solid #e7e7df;display:flex;align-items:center;justify-content:space-between;padding:0 4vw}.brand{text-decoration:none;color:#244335;display:flex;align-items:center;gap:12px;letter-spacing:1.8px;font-size:13px}.brand b{font-weight:400;color:#718477}.brand small{display:block;letter-spacing:.2px;font-size:10px;color:#8b948c;margin-top:4px}.brand-icon{display:grid;place-items:center;width:40px;height:40px;background:#284638;color:white;border-radius:11px;font-size:27px}.top-actions{display:flex;gap:10px;align-items:center}.tag{font-size:9px;letter-spacing:1px;border:1px solid #d7ddd3;border-radius:30px;padding:5px 9px;color:#667b6e;margin-right:8px}main{max-width:1720px;margin:auto;padding:30px 4vw}.intro{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:26px}.eyebrow{font-size:9px;letter-spacing:2px;color:#869483;margin-bottom:9px}.intro>div>p:last-child{color:#889187;margin-top:8px}.local-status{display:flex;gap:10px;align-items:center;font-size:11px}.local-status small{display:block;color:#869085;margin-top:4px}.dot{width:7px;height:7px;border-radius:100%;background:#78a779}.setup{border:1px solid #dde3d8;border-radius:13px;background:#fff;overflow:hidden;box-shadow:0 3px 10px #183e2403;margin-bottom:30px}.setup summary{list-style:none;display:flex;align-items:center;padding:18px 22px;gap:14px;cursor:pointer}.setup summary::-webkit-details-marker{display:none}.step{background:#edf1e8;color:#59754e;width:33px;height:33px;display:grid;place-items:center;border-radius:9px;font-size:12px}.setup summary b{font-weight:600;font-size:14px}.setup summary small{display:block;color:#94a08f;font-size:10px;margin-top:3px}.summary-right{margin-left:auto;color:#86937f;font-size:11px}.summary-right span{margin-left:16px}.setup[open] summary{border-bottom:1px solid #edf0e9}.setup-grid{padding:22px;display:grid;grid-template-columns:1.5fr 1fr;gap:30px}.section-label{font-size:11px;letter-spacing:.5px;color:#6e806a;font-weight:600;margin-bottom:12px}.two,.four{display:grid;gap:12px;margin-bottom:13px}.two{grid-template-columns:1fr 1fr}.four{grid-template-columns:1.3fr .7fr 1fr 1fr}label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#5c6e5a}label span{color:#a0a99a;font-size:9px}input:not([type=checkbox],[type=range],[type=color]),select,textarea{width:100%;border:1px solid #dfe5d9;background:#fcfdf9;color:#2a4135;border-radius:6px;padding:9px 10px;min-width:0}input::placeholder{color:#b1b9ad}input[type=color]{border:1px solid #dce3d4;border-radius:6px;width:56px;height:37px;background:white;padding:4px}input[type=range]{accent-color:var(--accent);width:100%;margin-top:12px}.appearance{border-left:1px solid #edf0e7;padding-left:30px}.stage-title{display:flex;justify-content:space-between;align-items:center;margin-top:16px}.stage-title p{margin:0}#stage-fields{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.stage-field{display:flex;gap:3px;max-width:220px}.stage-field input{font-size:11px!important;padding:6px 9px!important}.stage-field button{border:0;padding:2px 7px;color:#a08b78}.image-fields{display:flex;gap:18px}.image-field{display:flex;align-items:center;flex-wrap:wrap;gap:4px;flex:1}.image-preview{height:78px;width:100%;border:1px dashed #dbe2d4;border-radius:8px;background:#f8faf5;display:flex;align-items:center;justify-content:center;color:#a3ae9c;font-size:10px;overflow:hidden}.image-preview img{height:100%;width:100%;object-fit:contain}.image-preview.wide img{object-fit:cover}.file-button{font-size:10px;display:inline-block;padding:5px 10px;margin-top:4px}.remove-image{font-size:10px}.brand-controls{display:flex;gap:20px;margin-top:15px}.opacity-label{flex:1}.opacity-label output{float:right}.hint{font-size:9px;color:#98a18f;line-height:1.8;margin-top:12px}.setup-footer{display:flex;justify-content:space-between;align-items:center;padding:13px 22px;background:#fafbf7;border-top:1px solid #edf0e8}.setup-footer span{font-size:10px;color:#8f9b84}.board-section{background:#fff;border-radius:13px;border:1px solid #dde3d8;overflow:hidden}.event-header{padding:24px;display:flex;gap:15px;align-items:center}.event-header .eyebrow{margin-bottom:5px;color:#a16a47}.event-header h2{font-size:26px;line-height:1.4}.event-header p:last-child{font-size:11px;color:#8a9782;margin-top:8px}#event-logo:empty{display:none}#event-logo img{width:65px;height:65px;object-fit:contain}.event-actions{margin-left:auto;display:flex;gap:8px}.board-toolbar{border-top:1px solid #edf0e7;border-bottom:1px solid #e1e6dc;padding:0 22px;display:flex;justify-content:space-between;gap:18px;align-items:center;min-height:68px}#day-tabs{display:flex;align-self:stretch;overflow:auto;max-width:58%}.day-tab{border:0;border-radius:0;min-width:125px;white-space:nowrap;padding:12px 18px;background:transparent;font-size:11px;color:#8a9980;border-bottom:3px solid transparent}.day-tab.active{border-bottom-color:var(--accent);color:#30472f;background:#fafbf6}.day-tab small{display:block;font-size:9px;margin-top:4px}.tools{display:flex;gap:10px}.search{display:flex;flex-direction:row;align-items:center;gap:6px}.search>span{font-size:22px}.search input{font-size:10px!important;width:210px!important}.tools select{font-size:10px;width:135px}.board-info{display:flex;align-items:center;gap:20px;padding:12px 24px;color:#87977e;font-size:10px;min-height:44px}#conflicts{color:#bb6d36}.legend{margin-left:auto;display:flex;align-items:center;gap:7px}.legend i{width:6px;height:6px;background:#588d65;border-radius:50%}.legend .pending{background:#d8a149;margin-left:9px}.grid-scroll{overflow:auto;max-height:760px;border-top:1px solid #e6eadf}#grid{position:relative;min-width:700px;isolation:isolate}.grid-head{display:grid;grid-template-columns:64px repeat(var(--stages),minmax(230px,1fr));position:sticky;top:0;z-index:4;background:#f7f9f2;border-bottom:1px solid #dce4d2;min-height:52px}.stage-heading{padding:16px 18px;border-left:1px solid #e0e6d7;font-size:11px;font-weight:600;letter-spacing:.3px}.stage-heading i{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:8px}.time-heading{padding-top:18px;text-align:center;font-size:9px;color:#9aaa8c}.grid-body{display:grid;grid-template-columns:64px repeat(var(--stages),minmax(230px,1fr));position:relative}.wallpaper{position:absolute;inset:0 0 0 64px;background-size:cover;background-position:center;opacity:var(--wall-opacity);z-index:-1;pointer-events:none}.time-column{background:#fafbf6;position:relative}.time-label{position:absolute;right:11px;font-size:9px;color:#96a18b;transform:translateY(-50%)}.time-label:first-child{transform:none}.lane{position:relative;border-left:1px solid #dfe5d6;background:repeating-linear-gradient(to bottom,transparent 0,transparent 47px,#dfe5d655 47px,#dfe5d655 48px);cursor:crosshair;min-width:230px}.lane.dragover{background-color:#de6c3610}.session-card{position:absolute;left:9px;right:9px;min-height:24px;background:#f2f6eb;border:1px solid #d8e2cc;border-left:3px solid #7b9a60;border-radius:7px;padding:8px 10px;text-align:left;overflow:hidden;cursor:grab;color:#344732;box-shadow:0 2px 3px #1a321205}.session-card:hover{background:#eaf1e1;box-shadow:0 3px 9px #243d2512;z-index:3}.session-card.pending{background:#fff6e8;border-color:#f0debd;border-left-color:#cca45d}.session-card.collision{border-color:#db8976;border-left-color:#bd513b}.session-card .card-time{font-size:9px;display:flex;justify-content:space-between;color:#839173;gap:5px;white-space:nowrap}.session-card strong{font-size:12px;font-weight:600;display:block;line-height:1.4;margin-top:4px}.session-card .en-title{display:block;font-size:9px;color:#879178;margin-top:3px}.session-card .people{font-size:10px;margin-top:7px;line-height:1.55;color:#627453}.session-card .people span{display:block}.card-tag{font-size:8px;margin-top:5px;display:inline-block;background:#fff9;border-radius:3px;padding:1px 5px}.session-card.short{padding:3px 7px}.session-card.short strong{font-size:10px;margin-top:1px}.session-card.short .people,.session-card.short .en-title,.session-card.short .card-tag{display:none}.session-card.filtered{display:none}.board-footer{display:flex;align-items:center;justify-content:space-between;padding:13px 24px;background:#fafbf7;border-top:1px solid #e5ebdc;color:#9aa58e;font-size:10px}.page-footer{display:flex;justify-content:space-between;margin:23px 0 5px;font-size:9px;letter-spacing:1px;color:#a5ad9b}.page-footer b{margin:0 12px;font-weight:400}#empty{padding:20px;text-align:center;background:#fbfcf7;border-top:1px solid #edf0e6;color:#637b55}#empty p{font-size:10px;margin:6px}#notice{margin-bottom:18px;background:#fff1df;border:1px solid #e4c79e;padding:14px;border-radius:8px;color:#8b572b}dialog{border:1px solid #e1e5da;border-radius:14px;width:min(720px,95vw);padding:25px;max-height:90vh;overflow:auto;color:#304735;box-shadow:0 20px 90px #192b2940}dialog::backdrop{background:#18362960;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dialog-heading h2{font-size:21px}.close{border:0;font-size:27px;padding:0 8px;background:transparent}.dialog-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px}.dialog-footer>div{display:flex;gap:8px}.check{flex-direction:row;align-items:center;margin-top:12px}.check input{accent-color:var(--accent)}#session-form>label{margin-bottom:12px}.danger{color:#a94b39;border-color:#edddd3}.error{color:#b4533b;margin-top:12px;white-space:pre-wrap}#confirm-text{line-height:1.9;white-space:pre-wrap}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#2e493b;color:white;padding:13px 22px;border-radius:9px;box-shadow:0 4px 22px #0002;z-index:20;max-width:90vw}body.busy{cursor:progress}body.busy button{pointer-events:none;opacity:.6}[hidden]{display:none!important}@media(max-width:900px){main{padding:20px}.topbar{padding:0 20px}.tag{display:none}.intro{align-items:flex-start}.intro h1{font-size:23px}.local-status{max-width:200px}.setup-grid{grid-template-columns:1fr;gap:20px}.appearance{border-left:0;border-top:1px solid #edf0e7;padding:20px 0 0}.image-preview{height:95px}.event-header{flex-wrap:wrap}.event-actions{width:100%;margin-left:0}.board-toolbar{flex-wrap:wrap;padding-top:8px;padding-bottom:8px}#day-tabs{max-width:100%;width:100%}.tools{width:100%}.search{flex:1}.search input{width:100%!important}.page-footer{gap:12px}.top-actions button{font-size:10px;padding:8px}.brand{font-size:10px}.brand small{font-size:8px}}@media(max-width:560px){main{padding:14px}.intro{display:block}.local-status{margin-top:16px;max-width:none}.topbar{height:76px;padding:0 12px}.brand-icon{width:30px;height:30px}.brand{gap:7px;letter-spacing:.7px}.top-actions{gap:5px}.summary-right{font-size:0}.summary-right span{font-size:16px}.setup-grid{padding:15px}.four{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}.setup-footer{padding:12px;gap:10px}.setup-footer span{font-size:8px;max-width:140px}.setup-footer button{font-size:11px}.event-header{padding:18px}.event-header h2{font-size:22px}.board-info{gap:10px;padding:10px}.legend{font-size:8px}.board-footer{padding:10px;gap:10px}.board-footer>span{max-width:200px}.page-footer{display:block;line-height:2}.page-footer span{display:block}.dialog-footer{flex-wrap:wrap}}
.drop-guide{position:absolute;left:4px;right:4px;z-index:8;pointer-events:none;border:2px solid var(--accent);border-top-width:3px;border-radius:4px;background:color-mix(in srgb,var(--accent) 12%,transparent);box-shadow:0 -3px 12px color-mix(in srgb,var(--accent) 65%,transparent),inset 0 0 12px color-mix(in srgb,var(--accent) 15%,transparent)}.drop-label{position:absolute;top:0;left:6px;transform:translateY(-100%);background:#263f34;color:white;padding:6px 10px;border-radius:6px 6px 0 0;font-size:11px;box-shadow:0 2px 10px #0003;white-space:nowrap}.drop-guide.invalid{border-color:#d85045;background:#d8504515;box-shadow:0 -3px 12px #d8504580}.drop-guide.invalid .drop-label{background:#a82f28}.session-card.dragging{opacity:.35}.lane{overflow:visible}#export-dialog{width:min(900px,96vw)}.export-controls{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:12px;margin-bottom:14px}#export-preview{background:#e9ece5;min-height:180px;max-height:58vh;overflow:auto;display:flex;justify-content:center;padding:18px;margin-top:16px;border-radius:10px}#export-preview canvas{display:block;max-width:100%;width:auto;height:auto;object-fit:contain;align-self:flex-start;box-shadow:0 4px 20px #16372520}.preview-pager{display:flex;justify-content:center;gap:20px;align-items:center;margin-top:12px}.preview-pager span{font-size:11px;color:#819176}.dialog-footer small{font-size:10px;color:#819176}.tools select{width:190px}#session-form input[name=format]{margin-top:6px}@media(max-width:560px){.export-controls{grid-template-columns:1fr 1fr}.export-controls>label:last-child{grid-column:1/-1}.drop-label{font-size:9px}.top-actions #save{max-width:130px}.tools select{width:165px}}

.demo-banner{margin:24px 0;padding:18px 22px;border:1px solid #d7dfd9;border-left:4px solid #305b49;border-radius:12px;background:#edf3ee;color:#244936}.demo-banner p{margin:8px 0;line-height:1.65}.demo-banner small{color:#56665c}
