:root{--ink:#17324d;--blue:#2476a7;--blue-deep:#145477;--sky:#eaf5fa;--line:#d6e2e8;--muted:#60717d;--paper:#fff;--bg:#f3f7f8;--red:#b33c46;--red-soft:#fff0f1;--green:#2f7a60;--green-soft:#e8f5ef;--amber:#9a6509;--amber-soft:#fff5de;--shadow:0 12px 34px rgba(26,73,96,.08)}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:linear-gradient(180deg,#edf6f8 0,#f7f8f8 240px);color:#20303a;font-family:"Yu Gothic UI","Noto Sans JP",system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.brand-bar{min-height:68px;padding:10px max(18px,calc((100vw - 1180px)/2));display:flex;align-items:center;gap:12px;background:var(--ink);color:white;box-shadow:0 3px 18px #0c25394d}.brand-bar strong{display:block;font-size:18px;letter-spacing:.04em}.brand-bar small{display:block;font-size:9px;letter-spacing:.22em;color:#aee2f5}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#68c1dd,#2b83af);font-weight:900;font-size:21px}.secure-label{margin-left:auto;border:1px solid #ffffff40;border-radius:999px;padding:6px 11px;font-size:12px;color:#d8edf5}.shell{max-width:1180px;margin:0 auto;padding:28px 20px 70px}.login-card,.card,.notice-card,.condition-card,.admin-switch{background:var(--paper);border:1px solid rgba(64,127,153,.2);border-radius:18px;box-shadow:var(--shadow)}.login-card{max-width:470px;margin:4vh auto;padding:30px;border-top:6px solid var(--blue)}h1,h2,h3,p{margin-top:0}h1{color:var(--ink);font-size:clamp(25px,4vw,34px);margin-bottom:8px}h2{color:var(--ink);font-size:22px;margin-bottom:0}h3{color:var(--ink);font-size:18px;margin-bottom:8px}.eyebrow{margin:0 0 6px;color:var(--blue);font-size:10px;font-weight:900;letter-spacing:.2em}.muted{color:var(--muted);line-height:1.65}label{display:flex;flex-direction:column;gap:6px;margin:13px 0;font-size:13px;font-weight:700;color:#38505e}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #aebfc8;border-radius:9px;background:white;color:#20303a;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #3b9cca26}textarea{min-height:92px;resize:vertical}.password-row{display:grid;grid-template-columns:1fr auto;gap:7px}.password-row button{width:auto}.primary,.ghost,.danger,.icon-button{border-radius:9px;padding:10px 15px;font-weight:800;border:1px solid var(--blue);background:white;color:var(--blue)}.primary{background:linear-gradient(135deg,var(--blue),var(--blue-deep));color:#fff}.danger{color:var(--red);border-color:var(--red)}.ghost{border-color:#aebfc8;color:#405864}.small{padding:7px 10px;font-size:12px}.wide{width:100%;margin-top:10px}.primary:disabled,.ghost:disabled{opacity:.45;cursor:not-allowed}.demo-accounts{margin-top:20px;padding:10px 12px;border-radius:9px;background:#f5f8f9;color:var(--muted);font-size:12px}.demo-accounts summary{cursor:pointer;font-weight:800}.demo-accounts p{margin:8px 0 0;line-height:1.65}.error-message{min-height:1.2em;margin:10px 0 0;color:var(--red);font-size:13px;font-weight:700}.app-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.app-header .muted{margin:0}.notice-card{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;padding:18px 22px;margin-bottom:15px;border-left:6px solid var(--blue)}.notice-card div{min-width:180px}.notice-card span{display:block;font-size:12px;color:var(--muted);font-weight:700}.notice-card strong{display:block;color:var(--ink);font-size:27px}.notice-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.condition-card{display:flex;gap:16px;align-items:center;margin-bottom:15px;padding:14px 20px;background:var(--green-soft);border-color:#b9dccd}.condition-card strong{color:var(--green);white-space:nowrap}.condition-card span{font-size:14px}.card{padding:22px;margin-bottom:16px}.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.legend{font-size:12px;color:var(--muted);white-space:nowrap}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin:0 4px 0 9px}.dot.own{background:var(--green)}.dot.full{background:var(--red)}.week-head,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.week-head{margin-bottom:8px;text-align:center;color:#637681;font-size:12px;font-weight:800}.calendar-grid::before{content:"";grid-column:span var(--offset,0)}.day-card{position:relative;min-height:116px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#2a3c47;text-align:left;display:flex;flex-direction:column;gap:4px;overflow:hidden}.day-card:hover{border-color:var(--blue);transform:translateY(-1px);box-shadow:0 7px 18px #1c6c9020}.day-card.own{border:2px solid var(--green);background:var(--green-soft)}.day-card.full:not(.own){background:#f7f7f7;color:#87939a}.day-card .day-number{font-size:18px;font-weight:900}.day-card .holiday-name{font-size:11px;color:var(--red);font-weight:800;line-height:1.3}.day-card .event-name{font-size:11px;color:var(--amber);font-weight:800;line-height:1.3}.day-card .capacity{margin-top:auto;font-size:12px;font-weight:800}.day-card .own-label{font-size:11px;color:var(--green);font-weight:900}.holiday-day .day-number{color:var(--red)}.saturday-day .day-number,.saturday-color{color:#2467a7}.holiday-color{color:var(--red)}.editor-card{border-left:6px solid var(--blue)}.count-pill,.role-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 12px;background:var(--sky);color:var(--blue-deep);font-size:12px;font-weight:900}.event-line,.holiday-line,.status-message{border-radius:9px;padding:10px 12px;margin:8px 0;font-size:13px}.event-line{background:var(--amber-soft);color:#785000}.holiday-line{background:var(--red-soft);color:var(--red)}.status-message{background:#f3f6f7;color:#52646e;line-height:1.55}.status-message.error{background:var(--red-soft);color:var(--red)}.check-line{display:flex;flex-direction:row;align-items:center;gap:9px;padding:12px;border:1px solid var(--line);border-radius:10px}.check-line input{width:20px;height:20px}.metadata{font-size:12px;color:var(--muted)}.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.admin-switch{padding:17px 21px;margin:20px 0}.admin-switch label{margin:0;flex-direction:row;align-items:center;gap:12px}.admin-switch input{width:24px;height:24px}.admin-switch span{display:flex;flex-direction:column}.admin-switch small{font-weight:400;color:var(--muted)}.admin-title{display:flex;justify-content:space-between;align-items:center;margin:28px 0 14px}.admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.admin-grid .card{margin:0}.admin-grid button{width:100%}.inline-field{display:flex;flex-direction:row;align-items:center;margin:0;white-space:nowrap}.inline-field select{width:auto;min-width:150px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{background:#edf5f8;color:var(--ink);font-weight:900}td.comment-cell{white-space:normal;min-width:170px}.table-action{padding:5px 8px;font-size:11px}.empty-cell{text-align:center;color:var(--muted);padding:24px}.period-list,.compact-list{display:grid;gap:9px}.period-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px}.period-item strong,.period-item span{display:block}.period-item small{color:var(--muted)}dialog{border:0;border-radius:18px;padding:0;box-shadow:0 24px 70px #102b3c4d;max-width:560px;width:calc(100% - 30px)}dialog::backdrop{background:#122b3c99}.dialog-card{padding:24px}.icon-button{width:36px;height:36px;padding:0;border-radius:50%;font-size:20px}.toast{position:fixed;z-index:100;right:20px;top:84px;max-width:min(420px,calc(100vw - 40px));padding:13px 17px;border-radius:10px;background:var(--ink);color:#fff;box-shadow:0 9px 28px #102c3d40;font-size:13px;font-weight:700}.toast.error{background:var(--red)}
.month-tabs{display:flex;gap:8px;overflow:auto;margin:0 0 10px;padding:3px 1px}.month-tabs button{min-width:112px;padding:10px 15px;border:1px solid #aebfc8;border-radius:999px;background:#fff;color:#405864;font-weight:800;white-space:nowrap}.month-tabs button[aria-current="true"]{border-color:var(--blue);background:var(--blue);color:#fff;box-shadow:0 5px 14px #2476a733}.calendar-control-bar{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(180px,1fr) auto;justify-content:space-between;align-items:end;gap:12px;margin:0 0 16px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 7px 20px rgba(26,73,96,.05)}.calendar-unit-field{margin:0}.calendar-control-bar button{min-width:100px}.dot.review{background:#7c67c7}.day-card.review-day{box-shadow:inset 0 5px #7c67c7;background:#f8f6ff}.day-card.review-day:hover{box-shadow:inset 0 5px #7c67c7,0 7px 18px #1c6c9020}.day-card.review-day.full:not(.own){background:#f1eff7}.day-card.review-day.own{box-shadow:inset 0 5px #7c67c7}.day-card .condition-name{font-size:9px;color:#5b46a5;font-weight:900;line-height:1.25}.condition-line{background:#f0edff;color:#59469d;border-radius:9px;padding:10px 12px;margin:8px 0;font-size:13px}
@media(max-width:900px){.admin-grid{grid-template-columns:1fr 1fr}.week-head,.calendar-grid{gap:5px}.day-card{min-height:102px;padding:7px}.day-card .event-name{display:none}}
@media(max-width:650px){.brand-bar{min-height:60px}.secure-label{display:none}.shell{padding:18px 10px 50px}.login-card{padding:22px 18px}.app-header{align-items:center}.app-header h1{font-size:24px}.app-header .ghost{padding:8px 10px}.notice-card{grid-template-columns:1fr;gap:8px}.notice-card div{min-width:0}.condition-card{align-items:flex-start;flex-direction:column;gap:5px}.calendar-control-bar{grid-template-columns:1fr 1fr}.calendar-unit-field{grid-column:1/-1;grid-row:1}.calendar-control-bar button{min-width:0}.card{padding:15px}.section-heading{flex-direction:column}.legend{white-space:normal}.week-head,.calendar-grid{gap:3px}.day-card{min-height:87px;padding:6px;border-radius:8px}.day-card .day-number{font-size:15px}.day-card .holiday-name,.day-card .capacity,.day-card .own-label,.day-card .condition-name{font-size:8px}.day-card .event-name{display:none}.admin-grid{grid-template-columns:1fr}.admin-title{position:sticky;top:0;z-index:4;background:var(--bg);padding:10px 0}.inline-field{width:100%;justify-content:space-between}.period-item{align-items:flex-start;flex-direction:column}}
