:root{--fg: #1b2230;--fg-soft: #3d4658;--muted: #79818f;--border: #e7e9ee;--border-strong: #d4d8e0;--accent: #3a5bd9;--accent-hover: #2f4cc0;--accent-soft: #eef1fc;--surface: #ffffff;--bg: #f4f6f9;--ring: rgba(58, 91, 217, .32);--danger: #c2393b;--danger-soft: #fdeaea;--radius: 14px;--radius-sm: 10px;--shadow-sm: 0 1px 2px rgba(20, 28, 46, .06);--shadow-md: 0 4px 16px rgba(20, 28, 46, .07);--shadow-lg: 0 18px 48px rgba(20, 28, 46, .18);font-family:system-ui,-apple-system,Segoe UI,Hiragino Kaku Gothic ProN,Noto Sans JP,Meiryo,sans-serif;color:var(--fg);font-feature-settings:"palt" 1;line-height:1.55}*{box-sizing:border-box}body{margin:0;background:var(--bg);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.embed body{background:var(--surface)}.wrap{max-width:1240px;margin:0 auto;padding:24px 16px 48px}.embed .wrap{padding:12px}h1{font-size:1.45rem;font-weight:700;letter-spacing:-.01em;margin:0 0 16px;color:var(--fg)}h2{font-size:1.05rem;font-weight:700;letter-spacing:-.005em;margin:22px 0 12px;padding-left:11px;position:relative;color:var(--fg)}h2:before{content:"";position:absolute;left:0;top:.18em;bottom:.18em;width:4px;border-radius:4px;background:var(--accent)}.card h2:first-child{margin-top:0}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}select,input,button{font:inherit;color:var(--fg)}select,input[type=date],input[type=text]{padding:9px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:42px;transition:border-color .15s ease,box-shadow .15s ease}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:34px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2379818f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 11px center;background-size:15px;cursor:pointer}input::placeholder{color:#aab0bb}select:focus,input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}button{padding:9px 16px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--fg-soft);font-weight:600;cursor:pointer;min-height:42px;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .05s ease,color .15s ease}button:hover{background:#f4f6fa;border-color:var(--border-strong)}button:active{transform:translateY(1px)}button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow-sm)}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.danger{color:var(--danger);border-color:#efc4c4;background:var(--surface)}button.danger:hover{background:var(--danger-soft);border-color:#e3a9a9}button:disabled{opacity:.45;cursor:default;transform:none}.grid-placeholder{display:flex;align-items:center;justify-content:center;min-height:300px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);font-size:.9rem}.toast{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:70;padding:8px 16px;border-radius:999px;background:#1b2230eb;color:#fff;font-size:.85rem;font-weight:600;box-shadow:var(--shadow-md);animation:modalFade .18s ease;pointer-events:none}.toast.ok{background:#137a4b}.pop-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:transparent}.rangepop{position:fixed;z-index:61;transform:translate(-50%,calc(-100% - 12px));background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;box-shadow:var(--shadow-lg);padding:8px;min-width:150px;animation:modalPop .14s ease}.rangepop:after{content:"";position:absolute;left:50%;bottom:-8px;transform:translate(-50%);border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid var(--surface);filter:drop-shadow(0 1px 0 var(--border-strong))}.rangepop-label{text-align:center;font-size:.78rem;color:var(--muted);margin:2px 0 8px}.rangepop-btns{display:flex;gap:6px}.rangepop-btns button{flex:1;min-height:40px;font-weight:700}.rangepop-btns .o{color:#137a4b;border-color:#aaddc0;background:#effaf3}.rangepop-btns .o:hover{background:#e0f5e9}.rangepop-btns .x{color:#c2393b;border-color:#efc4c4;background:#fdf0f0}.rangepop-btns .x:hover{background:#fbe3e3}.roomgrid td.pendingsel{box-shadow:inset 0 0 0 2px var(--accent);background:#e8edfc}.roomgrid td.pendingsel.sat{background:#d9e9f8}.roomgrid td.pendingsel.sun{background:#f6dede}.siteview{position:relative;min-height:100vh;background:#fff}.siteframe{display:block;width:100%;height:100vh;border:0}.seg-float{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:40;box-shadow:var(--shadow-md)}.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:999px;overflow:hidden;background:var(--surface)}.seg button{border:0;border-radius:0;min-height:38px;padding:8px 16px;background:transparent;color:var(--fg-soft);font-weight:600}.seg button.on{background:var(--accent);color:#fff}.embed-list{display:flex;flex-direction:column;gap:12px}.embed-row{display:flex;gap:14px;align-items:flex-start;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fafbfd}.embed-name{min-width:7em;font-weight:700;padding-top:4px}.embed-codes{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}.embed-line{display:flex;align-items:center;gap:8px}.embed-label{min-width:8.5em;font-size:.78rem;color:var(--muted)}.embed-code{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem;background:#fff;border:1px solid var(--border);border-radius:6px;padding:6px 8px;white-space:nowrap;overflow-x:auto}.embed-line button{min-height:34px;padding:6px 12px;font-size:.8rem;white-space:nowrap}@media(max-width:600px){.embed-row{flex-direction:column;gap:8px}.embed-line{flex-wrap:wrap}.embed-label{min-width:auto}}.mtabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.mtabs .mtab{padding:8px 14px;min-height:38px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);font-weight:600;color:var(--fg-soft)}.mtabs .mtab.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow-sm)}.mtabs .shift{padding:8px 10px;min-height:38px;min-width:38px;border-radius:999px;font-size:1.05rem;line-height:1}.grid-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);-webkit-overflow-scrolling:touch}.roomgrid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.roomgrid th,.roomgrid td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:center;background:var(--surface)}.roomgrid thead th{padding:6px 0 5px}.roomgrid tbody tr:last-child th,.roomgrid tbody tr:last-child td{border-bottom:0}.roomgrid .room-col{position:sticky;left:0;z-index:2;min-width:130px;max-width:190px;padding:8px 10px;text-align:left;font-size:.85rem;font-weight:600;color:var(--fg);background:#fafbfd;border-right:2px solid var(--border-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roomgrid thead .room-col{font-size:.78rem;color:var(--muted)}.roomgrid thead th{font-weight:600;color:var(--fg-soft)}.roomgrid thead .dnum{display:block;font-size:.85rem;line-height:1.2}.roomgrid thead .dow{display:block;font-size:.68rem;color:var(--muted);line-height:1.2}.roomgrid thead th.today .dnum{background:var(--accent);color:#fff;border-radius:999px;display:inline-block;min-width:1.6em;padding:0 3px}.roomgrid td{min-width:34px;height:38px;font-size:.95rem;font-weight:700;color:#137a4b;-webkit-user-select:none;user-select:none}.roomgrid td.x{color:#c2393b}.roomgrid th.sat,.roomgrid td.sat{background:#e8f4fd}.roomgrid th.sun,.roomgrid td.sun{background:#fdecec}.roomgrid thead th.sat .dnum,.roomgrid thead th.sat .dow{color:#2f6fd0}.roomgrid thead th.sun .dnum,.roomgrid thead th.sun .dow{color:#d84a4a}.roomgrid.editable td{cursor:pointer;touch-action:manipulation}.roomgrid.editable td:hover{box-shadow:inset 0 0 0 2px var(--ring)}.roomgrid td.dragsel{box-shadow:inset 0 0 0 2px var(--accent);background:#e8edfc}.roomgrid td.dragsel.sat{background:#d9e9f8}.roomgrid td.dragsel.sun{background:#f6dede}.legend{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;font-size:.8rem;align-items:center}.legend .chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px 5px 9px;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--fg-soft);font-weight:500;box-shadow:var(--shadow-sm)}.legend .mark{font-weight:700}.legend .mark.o{color:#137a4b}.legend .mark.xx{color:#c2393b}.muted{color:var(--muted)}.error{color:var(--danger);margin:8px 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:18px;box-shadow:var(--shadow-md)}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}table.list{width:100%;border-collapse:collapse}table.list th,table.list td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--border);font-size:.88rem}table.list th{font-size:.76rem;font-weight:600;color:var(--muted);text-transform:none;letter-spacing:.02em}table.list tbody tr{transition:background .12s ease}table.list tbody tr:hover{background:#fafbfd}table.list tr:last-child td{border-bottom:0}table.list .badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.74rem;font-weight:600}@media(max-width:600px){.wrap{padding:16px 12px 40px}.card{padding:16px}h1{font-size:1.25rem}.roomgrid td{min-width:32px;height:36px;font-size:.88rem}.roomgrid .room-col{min-width:76px;font-size:.78rem;padding:6px 8px}.mtabs .mtab{padding:7px 11px;font-size:.85rem}}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#161c2e73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50;animation:modalFade .22s ease}.modal{background:var(--surface);border-radius:var(--radius);padding:24px;max-width:420px;width:100%;box-shadow:var(--shadow-lg);animation:modalPop .26s cubic-bezier(.2,.8,.25,1)}.modal p{margin:0;color:var(--fg-soft);line-height:1.65}.modal .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.modal.alert{text-align:center;max-width:380px}.modal.alert .alert-msg{font-size:1rem;line-height:1.7;margin:4px 0 0;color:var(--fg)}.modal.alert .actions{justify-content:center;margin-top:22px}.modal.alert .actions button{min-width:112px}@keyframes modalFade{0%{opacity:0}to{opacity:1}}@keyframes modalPop{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.modal-bg,.modal{animation:none}*{transition:none!important}}
