@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/cd79e1ff94fa521b-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/89362aa296165c6d-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e11f95d95ac59fa4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/00f4982f357db61e-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/62a3c74fa0e47362-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8201559e247ad180-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/2173e4bb28c315da-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c6f81e539d11fc99-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/25ab8995c98996d7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9ddf1512dbee9c99-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8247d8d2a376ae43-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e270c9fc4fe96f5a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6bb6a9cb68044e10-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/9a3689a7cda641d2-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/bed26dc8a57eea87-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro Fallback;src:local("Arial");ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.00%;size-adjust:110.36%}.__className_383d88{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}:root{color:#17375a;background:#d7eefb}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:radial-gradient(circle at 8% -10%,#ffffff 0 18%,transparent 40%),linear-gradient(180deg,#c5e7f8,#e7f5fd 40%,#f3f8fc)}button,input,textarea{font-family:inherit}.page{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.app-bar{position:-webkit-sticky;position:sticky;top:0;z-index:20;flex-wrap:wrap;justify-content:flex-end;flex:none;padding:8px 16px 0;background:transparent}.app-bar,.bar-actions,.edit-actions{display:flex;gap:8px;align-items:center}.bar-actions,.edit-actions{flex-wrap:wrap}.btn{border:0;border-radius:999px;padding:.48rem .9rem;font-weight:700;cursor:pointer;background:#e8f4ff;color:#145a96}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:#1d7fd4;color:white}.btn-save.dirty{background:#e08a00;color:white}.btn-quiet{background:transparent;color:#5d7d96}.mobile-edit{display:none}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:16px;gap:16px;align-items:stretch;flex:1 1;min-height:0;padding:8px 16px 10px}.workspace.solo{grid-template-columns:minmax(0,1fr)}.stage{max-width:100%;height:100%;min-height:0;overflow-x:auto;container-type:size;display:flex;align-items:center;justify-content:center}.poster-wrap{width:min(1120px,calc(100cqh * 2480 / 1758));flex:none}.poster{position:relative;width:100%;aspect-ratio:2480/1758;overflow:visible;border:none;border-radius:0;background:#f4fcfe;box-shadow:0 14px 40px rgba(30,80,120,.16);container-type:size}.poster-bg{width:100%;height:100%;object-fit:fill;z-index:4;-webkit-user-select:none;-moz-user-select:none;user-select:none}.decor,.poster-bg{position:absolute;inset:0;pointer-events:none}.decor{z-index:0}.table-block,.text-block{position:absolute;z-index:1;margin:0}.text-block{line-height:1.12}.banner-face,.text-block{text-align:center;font-weight:800;white-space:pre-line}.banner-face{border-radius:.7cqw;-webkit-clip-path:polygon(2% 0,98% 0,100% 50%,98% 100%,2% 100%,0 50%);clip-path:polygon(2% 0,98% 0,100% 50%,98% 100%,2% 100%,0 50%);padding:.28em 1.1em;letter-spacing:.03em;line-height:1.15}.banner-face:after,.banner-face:before{content:"♥";font-size:.5em;margin:0 .35em;color:#ffd5e4}.badge-row{position:relative;min-height:2.2cqw;margin:0 0 .15cqw}.badge{display:inline-flex;align-items:center;gap:.35em;margin:0;border-radius:999px;padding:.28em .75em .28em .4em;font-weight:800;line-height:1;white-space:pre-line}.badge svg{width:1.25em;height:1.25em;display:block}.table-card{background:transparent;padding:0}.grid-table{width:100%;border-collapse:separate;border-spacing:.25cqh;table-layout:fixed}.grid-table tr{height:4.79cqh}.grid-table.morning tr{height:5.7cqh}.grid-table td,.grid-table th{padding:1px 3px;border-radius:8px;text-align:center;vertical-align:middle;font-weight:700;line-height:1.08;white-space:pre-line;word-break:break-word}.grid-table .time-col{position:-webkit-sticky;position:sticky;left:0;z-index:5;box-shadow:2px 0 4px rgba(23,55,90,.12)}.grid-table td{position:relative}.move-handle{position:absolute;top:0;right:0;z-index:2;padding:.15cqw .45cqw;border-radius:.45cqw;background:rgba(255,255,255,.86);color:#5b7c93;font-size:1.1cqw;font-weight:800;letter-spacing:-.08em;cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.merge-flag{position:absolute;top:.12cqw;right:.18cqw;padding:0 .25cqw;border-radius:999px;background:rgba(23,55,90,.72);color:white;font-size:.62cqw;font-weight:700;line-height:1.4;pointer-events:none}.is-admin .badge,.is-admin .head-cell,.is-admin .period-cell,.is-admin .slot,.is-admin .text-block{cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.is-admin .text-block{outline:1px dashed rgba(20,90,150,.35);outline-offset:2px;border-radius:.4cqw}.is-admin .chosen{outline:2px solid #f59e0b;outline-offset:1px;z-index:2}.is-admin .drop-target{outline:3px solid #0284c7;outline-offset:1px}.inspector{position:-webkit-sticky;position:sticky;top:74px;max-height:calc(100vh - 90px);overflow:auto;padding:14px;border-radius:16px;background:white;box-shadow:0 8px 28px rgba(30,80,120,.08)}.inspector.embedded{position:static;max-height:none;padding:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}.editor-sheet{position:fixed;left:0;right:0;bottom:0;z-index:45;display:flex;flex-direction:column;max-height:min(78dvh,640px);padding:12px 14px calc(12px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;background:white;box-shadow:0 -10px 32px rgba(16,48,74,.22)}.editor-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.editor-sheet-head h2{margin:0;font-size:1.05rem}.editor-sheet-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.editor-sheet-actions .btn{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 8px)}.editor-sheet-body{min-height:0;overflow:auto}.editor-sheet input,.editor-sheet textarea{font-size:16px}.inspector h2{margin:0 0 8px;font-size:1rem}.inspector p{margin:0 0 12px;color:#53748e;font-size:.92rem}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;font-size:.86rem;font-weight:700;color:#3d627f}.field input[type=number],.field input[type=password],.field input[type=text],.field textarea{width:100%;border:1px solid #d5e4ef;border-radius:10px;padding:8px 10px;font-weight:600;color:#17375a}.field textarea{min-height:72px;resize:vertical}.color-row{display:flex;gap:8px;align-items:center}.color-row input[type=color]{width:42px;height:34px;padding:0;border:0;background:transparent}.check{display:flex;gap:8px;align-items:center;margin-bottom:10px;font-size:.86rem;font-weight:700;color:#3d627f}.slider{width:100%}.modal-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:16px;background:rgba(16,48,74,.4)}.modal{width:min(380px,100%);padding:18px;border-radius:18px;background:white;box-shadow:0 20px 50px rgba(16,48,74,.2)}.modal h2{margin:0 0 6px}.modal .error{margin:0 0 8px;color:#b42318;font-weight:700}.ghost{z-index:60;max-width:180px;padding:6px 8px;border:1px solid #94a3b8;border-radius:8px;background:white;color:#17375a;font-size:13px;white-space:pre-line;pointer-events:none;transform:translate(10px,12px);box-shadow:0 8px 20px rgba(15,23,42,.15)}.ghost,.toast{position:fixed;font-weight:700}.toast{bottom:16px;left:50%;z-index:70;transform:translateX(-50%);padding:10px 14px;border-radius:999px;background:#17375a;color:white}@media (max-width:960px){.page{height:auto;overflow:visible}.workspace{grid-template-columns:1fr;padding:8px 0 16px}.stage,.workspace{display:block;height:auto}.stage{container-type:normal;overflow-x:auto}.poster-wrap{width:1120px;margin:0 auto}.edit-actions{display:none}.mobile-edit{display:inline-flex}.workspace .inspector{display:none}}@media print{@page{size:A4 landscape;margin:4mm}.page,.stage,.workspace,body,html{height:auto!important;min-height:0!important;margin:0!important;padding:0!important;background:white!important;overflow:visible!important}.no-print{display:none!important}.workspace{display:block!important;padding:0!important}.poster-wrap{width:100%;height:100vh;display:flex;align-items:center;justify-content:center}.poster{width:min(100%,calc((100vh - 1mm) * 2480 / 1758));border-radius:0;box-shadow:none!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.grid-table td,.grid-table th{font-size:2cqh!important}.badge,.head-cell,.period-cell,.slot,.text-block,td,th{outline:none!important;cursor:default!important}}