:root{color:#20180a;background:#ffdf2e;--itto-yellow: #ffdf2e;--itto-yellow-soft: #fff6bf;--itto-yellow-pale: #fffbea;--itto-gold: #f0ae00;--itto-orange: #e88f00;--itto-ink: #20180a;--itto-muted: #705d24;--itto-line: #ecd26d;--itto-danger: #c64135;font-family:Inter,Noto Sans JP,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#ffffff6b,#ffffff0f 34%),var(--itto-yellow)}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}button:disabled,.actions a[aria-disabled=true]{cursor:not-allowed;opacity:.52}.app-shell{min-height:100vh;padding:24px}.workspace{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:20px;max-width:1580px;margin:0 auto}.side-panel,.shift-panel{border:1px solid rgb(32 24 10 / 14%);background:var(--itto-yellow-pale);box-shadow:0 18px 48px #78550029}.side-panel{display:flex;flex-direction:column;gap:18px;min-height:calc(100vh - 48px);padding:22px;border-radius:8px}.brand{display:flex;align-items:center;gap:14px;padding-bottom:6px}.brand-mark{display:grid;place-items:center;width:48px;height:48px;overflow:hidden;border-radius:8px;border:2px solid var(--itto-ink);background:#fff}.brand-mark img{width:100%;height:100%;object-fit:cover}h1{margin:0;font-size:24px;line-height:1.2}.brand p,.toolbar p,.notice{margin:0}.brand p{margin-top:4px;color:var(--itto-muted);font-size:14px}.field{display:grid;gap:7px}.field span{color:var(--itto-ink);font-size:13px;font-weight:700}.field small{color:var(--itto-muted);font-size:12px;line-height:1.4}.field input,.field select,.field textarea{width:100%;min-width:0;max-width:100%;border:1px solid var(--itto-line);border-radius:7px;background:#fff;color:var(--itto-ink);padding:11px 12px;outline:none}.field input:focus,.field select:focus,.field textarea:focus,.slot:focus-visible,.actions a:focus-visible,.actions button:focus-visible,.day-actions button:focus-visible{border-color:var(--itto-orange);box-shadow:0 0 0 3px #e88f0038}.field textarea{resize:vertical;min-height:112px}.month-picker{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.72fr);gap:8px;width:100%}.month-picker label{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px}.month-picker select{min-width:0;width:100%}.month-picker label span{color:var(--itto-muted);font-size:13px;font-weight:800}.actions{display:grid;gap:9px}.actions a,.actions button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid var(--itto-line);border-radius:7px;color:var(--itto-ink);background:#fff7cf;text-decoration:none}.actions .primary{border-color:var(--itto-ink);color:#fff;background:var(--itto-ink)}.work-estimate{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(88px,.9fr);gap:10px;margin-top:auto;padding:16px;border-radius:8px;background:#fff2a6}.estimate-block,.wage-field,.estimate-result{display:grid;gap:6px;min-width:0}.estimate-block span,.wage-field span,.estimate-result span,.notice{color:var(--itto-muted);font-size:13px}.estimate-block strong{color:var(--itto-ink);font-size:28px;line-height:1;white-space:nowrap}.estimate-operator{align-self:end;padding-bottom:8px;color:var(--itto-muted);font-size:18px;font-weight:800}.wage-field input{width:100%;min-width:0;border:1px solid var(--itto-line);border-radius:7px;background:#fff;color:var(--itto-ink);padding:9px 10px;outline:none}.wage-field input:focus{border-color:var(--itto-orange);box-shadow:0 0 0 3px #e88f0038}.estimate-result{grid-column:1 / -1;padding-top:2px;border-top:1px solid #e4c655}.estimate-result strong{color:var(--itto-ink);font-size:20px;line-height:1.1}.shift-panel{overflow:hidden;min-height:calc(100vh - 48px);border-radius:8px}.pattern-panel{display:grid;gap:12px;padding:14px 20px;border-bottom:1px solid var(--itto-line);background:#ffe767}.pattern-panel p{margin:0 0 4px;font-size:17px;font-weight:800}.pattern-panel span{color:var(--itto-muted);font-size:12px;line-height:1.35}.pattern-table{display:grid;grid-template-columns:64px minmax(92px,132px) minmax(92px,132px);gap:7px;align-items:center}.pattern-head{color:var(--itto-ink);font-size:12px;font-weight:800}.pattern-weekday{display:grid;place-items:center;min-height:34px;border-radius:7px;background:#fff6bf;color:var(--itto-ink);font-weight:800}.pattern-table select{min-height:34px;border:1px solid #dfbd3d;border-radius:7px;background:#fff;color:var(--itto-ink);padding:6px 8px;outline:none}.pattern-table button{min-height:32px;padding:0 8px;border:1px solid #dfbd3d;border-radius:6px;color:var(--itto-ink);background:#fff7cf;font-size:12px;white-space:nowrap}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--itto-line);background:#fff9dc}.toolbar p{font-size:18px;font-weight:800}.toolbar span{color:var(--itto-muted);font-size:13px}.legend{display:flex;gap:10px;white-space:nowrap}.legend span{display:inline-flex;align-items:center;gap:5px}.legend-mark{font-size:17px;line-height:1}.legend-mark.available{color:#111}.legend-mark.unavailable{color:var(--itto-danger)}.grid-wrap{overflow:auto;height:calc(100vh - 250px);margin:16px;border:1px solid var(--itto-line);border-radius:8px;background:var(--itto-line);overscroll-behavior:contain;scrollbar-gutter:stable}.shift-grid{display:grid;grid-template-columns:190px repeat(var(--slot-count),58px);align-items:stretch;min-width:max-content;background:var(--itto-line);gap:1px}.corner,.time-header,.day-cell,.slot{min-height:44px;background:#fffef3}.corner,.time-header{position:sticky;top:0;z-index:3;display:grid;place-items:center;color:var(--itto-ink);background:#ffe767;font-size:12px;font-weight:800}.corner{left:0;z-index:4}.day-row{display:contents}.day-cell{position:sticky;left:0;z-index:2;display:grid;align-content:center;gap:5px;padding:10px;border-right:1px solid var(--itto-line)}.day-cell.holiday{background:#ffe5df}.day-cell strong{font-size:15px}.day-cell small{max-width:160px;color:var(--itto-muted);font-size:11px;line-height:1.35}.day-actions{display:flex;gap:6px}.day-actions button{min-height:24px;padding:0 8px;border:1px solid #dfbd3d;border-radius:6px;color:var(--itto-ink);background:#fff7cf;font-size:11px}.slot{display:grid;place-items:center;width:58px;min-height:64px;color:var(--itto-danger);background:#fffdf2;font-size:18px;font-weight:900}.slot.active{color:#111;background:#fff2a6;box-shadow:inset 0 0 0 2px var(--itto-ink)}.slot:hover{filter:brightness(.97)}.mail-note{display:flex;align-items:center;gap:8px;max-width:1580px;margin:12px auto 0;color:#4b3b0d;font-size:13px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media (max-width: 900px){.app-shell{padding:12px}.workspace{grid-template-columns:1fr;gap:12px}.side-panel,.shift-panel{min-height:auto}.side-panel{gap:14px;padding:16px}.brand{gap:12px}.brand-mark{width:44px;height:44px}h1{font-size:22px}.field input,.field select,.field textarea{padding:10px 11px}.actions{gap:8px}.actions a,.actions button{min-height:48px}.work-estimate{grid-template-columns:minmax(0,1fr) auto minmax(112px,1fr);padding:14px}.estimate-block strong{font-size:26px}.toolbar{align-items:flex-start;flex-direction:column;gap:10px;padding:14px}.toolbar p{font-size:17px}.legend{flex-wrap:wrap}.pattern-panel{overflow-x:hidden;padding:14px}.pattern-table{grid-template-columns:34px minmax(0,1fr) minmax(0,1fr);gap:6px;width:100%;min-width:0}.pattern-weekday{min-height:38px}.pattern-table select{width:100%;min-width:0;padding:6px 5px;font-size:13px}.grid-wrap{height:70vh;margin:12px}.shift-grid{grid-template-columns:154px repeat(var(--slot-count),52px)}.corner,.time-header{font-size:11px}.day-cell{padding:8px}.day-cell strong{font-size:14px}.day-actions{gap:4px}.day-actions button{padding:0 7px}.slot{width:52px;min-height:58px;font-size:17px}.mail-note{align-items:flex-start;padding:0 4px 8px;font-size:12px}}@media (max-width: 520px){.app-shell{padding:8px}.side-panel{padding:14px;overflow:hidden}.field input,.field select,.field textarea{font-size:16px}.pattern-panel{padding:12px}.pattern-table{grid-template-columns:30px minmax(0,1fr) minmax(0,1fr);gap:5px}.pattern-head{font-size:11px}.pattern-weekday{min-height:34px;font-size:12px}.pattern-table select{min-height:34px;border-radius:6px;font-size:12px}.work-estimate{grid-template-columns:1fr}.estimate-operator{display:none}.estimate-result{grid-column:auto}.shift-grid{grid-template-columns:138px repeat(var(--slot-count),50px)}.slot{width:50px}}
