*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--c-primary: #00AAC2;--c-primary-h: #0090A9;--c-primary-light: #E6F7F9;--c-bg: #F7FAFC;--c-surface: #FFFFFF;--c-nav: #FFFFFF;--c-border: #C7D4DE;--c-border-input: #C7D4DE;--c-text: #414D58;--c-sub: #617382;--c-placeholder: #93A6B6;--c-disabled-bg: #F2F6F9;--c-neutral-06: #93A6B6;--c-neutral-10: #414D58;--c-error: #D1204D;--c-error-bg: #FFF7F9;--c-success: #57D06F;--c-success-mid: #B7F1C1;--c-success-bg: #F5FFF7;--c-warning: #B79E34;--c-warning-mid: #FFF6BA;--c-warning-bg: #FFFEF2;--c-draft: #B79E34;--c-published: #57D06F;--radius: 4px;--radius-lg: 8px;--radius-pill: 100px;--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 0 0 1px rgba(0, 0, 0, .04)}body{font-family:Hiragino Kaku Gothic ProN,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;font-weight:300;line-height:1.5;color:var(--c-text);background:var(--c-bg)}button{cursor:pointer;font:inherit;border:none;background:none}input,select,textarea{font:inherit}a{color:var(--c-primary);text-decoration:none}a:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;height:40px;border-radius:var(--radius);border:1px solid transparent;font-size:14px;font-weight:300;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,color .15s ease-in-out}.btn-primary{background:var(--c-primary);color:#fff}.btn-primary:hover{background:var(--c-primary-h)}.btn-default{background:var(--c-surface);color:var(--c-neutral-10);border-color:var(--c-neutral-06)}.btn-default:hover{background:var(--c-disabled-bg)}.btn-outline{background:var(--c-surface);color:var(--c-primary);border-color:var(--c-primary)}.btn-outline:hover{background:var(--c-primary);color:#fff;border-color:transparent}.btn-danger{background:var(--c-surface);color:var(--c-error);border-color:var(--c-error)}.btn-danger:hover{background:var(--c-error);color:#fff;border-color:transparent}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}.badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;line-height:1.5;border:1px solid transparent}.badge-draft{background:var(--c-warning-bg);border-color:var(--c-warning-mid);color:var(--c-neutral-10)}.badge-published{background:var(--c-success-bg);border-color:var(--c-success-mid);color:var(--c-neutral-10)}.card{background:var(--c-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow-x:auto}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--c-surface);border-radius:var(--radius-lg);border:1px solid var(--c-border);width:520px;max-width:95vw;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 24px #0003}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--c-border)}.modal-header h2{font-size:18px;font-weight:300}.modal-body{padding:24px;overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--c-border)}.form-group{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.form-label{font-size:14px;font-weight:600;color:var(--c-text)}.form-control{padding:8px 10px;border:1px solid var(--c-border-input);border-radius:var(--radius);font-size:14px;width:100%;background:var(--c-surface);color:var(--c-text)}.form-control::placeholder{color:var(--c-placeholder)}.form-control:hover{border-color:var(--c-primary)}.form-control:focus{outline:none;border-color:var(--c-primary)}.form-control:disabled{background:var(--c-disabled-bg);color:var(--c-placeholder);border-color:var(--c-border-input)}.alert{padding:10px 14px;border-radius:var(--radius);font-size:14px;margin-bottom:12px}.alert-error{background:var(--c-error-bg);color:var(--c-error);border-left:3px solid var(--c-error)}.alert-warning{background:var(--c-warning-bg);color:var(--c-neutral-10);border-left:3px solid var(--c-warning-mid)}.alert-success{background:var(--c-success-bg);color:var(--c-neutral-10);border-left:3px solid var(--c-success-mid)}.spinner{width:20px;height:20px;border:2px solid var(--c-border);border-top-color:var(--c-primary);border-radius:50%;animation:spin .6s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;top:32px;left:50%;transform:translate(-50%);z-index:9999;width:400px;max-width:calc(100vw - 32px);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-radius:var(--radius);box-shadow:0 4px 16px #00000026;animation:toast-in .2s ease-in-out}.toast-success{background:var(--c-success-mid);color:var(--c-neutral-10)}.toast-error{background:var(--c-error);color:#fff}.toast-content{display:flex;align-items:center;gap:8px;min-width:0}.toast-icon{font-size:20px;flex-shrink:0;line-height:1}.toast-message{font-size:14px}.toast-close{background:none;border:none;padding:0;flex-shrink:0;font-size:20px;line-height:1;cursor:pointer;color:inherit;opacity:.7}.toast-close:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@media print{.no-print{display:none!important}.print-only{display:block!important}body{background:#fff}}.print-only{display:none}:root{--topbar-h: 48px}.app-topbar{height:var(--topbar-h);background:var(--c-primary);flex-shrink:0}.app-shell{display:flex;height:calc(100vh - var(--topbar-h));overflow:hidden}:root{--p02: #BFE9EF}.sidebar{width:240px;flex-shrink:0;background:var(--c-nav);border-right:1px solid var(--c-border);height:100%;display:flex;flex-direction:column;overflow:hidden}.sidebar-hd{padding:0 24px;height:var(--topbar-h);display:flex;align-items:center;border-bottom:1px solid var(--c-border);color:var(--c-text);font-size:15px;font-weight:600;letter-spacing:.02em;flex-shrink:0}.sidebar-nav{padding:8px;flex:1;overflow-y:auto}.s-item{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--radius);font-size:14px;color:var(--c-sub);cursor:pointer;transition:background .12s,color .12s;margin-bottom:2px;font-weight:300;text-decoration:none}.s-item:hover{background:var(--c-bg);color:var(--c-text);text-decoration:none}.s-item.active{background:var(--c-primary-light);color:var(--c-primary-h);font-weight:600}.sidebar-footer{padding:8px;border-top:1px solid var(--c-border);flex-shrink:0}.user-sw-btn{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius);background:var(--c-bg);cursor:pointer;transition:background .12s;width:100%;border:none}.user-sw-btn:hover{background:var(--c-disabled-bg)}.user-sw-name{font-size:13px;font-weight:600;color:var(--c-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;text-align:left}.user-sw-role{font-size:11px;color:var(--c-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-col{flex:1;display:flex;flex-direction:column;height:100%;min-width:0;overflow:hidden}.content-area{flex:1;overflow-y:auto;display:flex;flex-direction:column;min-height:0}.page-hd{background:var(--c-surface);border-bottom:1px solid var(--c-border);padding:16px 24px;display:flex;align-items:center;gap:16px;flex-shrink:0;flex-wrap:wrap;row-gap:8px}.page-hd-title{font-size:20px;font-weight:300;color:var(--c-text)}.edit-hd{background:var(--c-surface);border-bottom:1px solid var(--c-border);padding:8px 24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;flex-shrink:0;position:sticky;top:0;z-index:30}.edit-hd-title{font-size:18px;font-weight:300;color:var(--c-text)}.edit-hd-period{font-size:13px;color:var(--c-sub);white-space:nowrap}.edit-hd-right{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.more-menu-wrap{position:relative}.more-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:41;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:0 4px 16px #0000001f;min-width:120px;overflow:hidden}.more-menu-item{display:block;width:100%;text-align:left;white-space:nowrap;padding:8px 14px;font-size:13px;color:var(--c-text);background:var(--c-surface);transition:background .1s}.more-menu-item:hover{background:var(--c-disabled-bg)}.more-menu-item.danger{color:var(--c-error)}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;padding:16px 24px 0;flex-wrap:wrap;gap:12px;flex-shrink:0;width:100%;box-sizing:border-box}.cal-toolbar-label{font-size:20px;font-weight:600;color:var(--c-text);text-align:left;white-space:nowrap}.edit-hd-top{padding:6px 24px 0;display:flex;align-items:center;flex-shrink:0}.back-link{border:none;background:none;padding:0;font-size:14px;font-weight:600;cursor:pointer;color:var(--c-primary);font-family:inherit;display:inline-flex;align-items:center;gap:4px}.back-link:hover{color:var(--c-primary-h)}.view-tabs{display:flex;background:var(--c-disabled-bg);border:1px solid var(--c-border);border-radius:var(--radius);padding:3px;gap:2px}.vtab{border:none;background:transparent;height:30px;padding:0 12px;border-radius:3px;font-size:13px;cursor:pointer;color:var(--c-sub);transition:all .1s;font-family:inherit;font-weight:300;white-space:nowrap}.vtab:hover{color:var(--c-text);background:#fff9}.vtab.active{background:var(--c-surface);color:var(--c-text);font-weight:600;box-shadow:0 1px 2px #00000014}.cal-wrap{padding:16px 24px;min-width:0;flex:1;min-height:0;display:flex;flex-direction:column}.cal-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);overflow:clip;width:100%;flex:0 1 auto;min-height:0;display:flex;flex-direction:column}.cal-scroll{overflow:auto;flex:1;min-height:0}.th-day-name{font-size:11px;color:var(--c-sub);font-weight:300}.th-day-date{font-size:16px;font-weight:600;color:var(--c-text);line-height:1.3;margin:2px 0}.th-day-date.sat,.th-day-name.sat{color:var(--c-primary)}.th-day-date.sun,.th-day-name.sun{color:var(--c-error)}.shift-block{padding:2px 6px;border-radius:var(--radius);font-size:12px;cursor:pointer;transition:all .15s;margin-bottom:3px;background:var(--c-primary-light);border:1px solid var(--p02);color:var(--c-primary)}.shift-block:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0078be33}.shift-block.unsaved{border:2px dashed var(--c-primary)!important;opacity:.8}.shift-time{font-weight:600}.td-shift{transition:background .1s}.td-shift:hover{background:var(--c-primary-light)!important}.td-shift:hover .add-shift-btn{opacity:1}.add-shift-btn{width:100%;padding:3px;border:1px dashed var(--c-border)!important;border-radius:var(--radius);background:transparent;font-size:11px;color:var(--c-sub);cursor:pointer;text-align:center;margin-top:3px;display:block;opacity:0;transition:opacity .15s}.add-shift-btn:hover{border-color:var(--c-primary)!important;color:var(--c-primary);background:var(--c-primary-light)}.dn-btn{border:1px solid var(--c-border);background:var(--c-surface);border-radius:var(--radius);height:40px;min-width:40px;padding:0 10px;font-size:16px;cursor:pointer;color:var(--c-sub);transition:all .1s;font-family:inherit}.dn-btn:hover{background:var(--c-disabled-bg)}.day-view{min-width:800px}.tl-header{display:flex;border-bottom:1px solid var(--c-border);background:var(--c-disabled-bg);position:sticky;top:0;z-index:10}.tl-emp-col{width:160px;flex-shrink:0;padding:6px 16px;font-size:11px;font-weight:600;color:var(--c-placeholder);text-transform:uppercase;letter-spacing:.05em;border-right:1px solid var(--c-border);display:flex;align-items:center}.tl-time-area{flex:1;position:relative;height:36px;background-image:repeating-linear-gradient(to right,var(--c-border) 0,var(--c-border) 1px,transparent 1px,transparent calc(100% / 24))}.tl-tick{position:absolute;top:0;display:flex;flex-direction:column;align-items:center}.tl-tick-line{width:1px;height:8px;background:var(--c-border)}.tl-tick-label{font-size:10px;color:var(--c-placeholder);margin-top:1px;white-space:nowrap}.tl-row{display:flex;border-bottom:1px solid var(--c-border)}.tl-row-outside .tl-name,.tl-row-outside .tl-track{background-color:var(--c-disabled-bg)}.tl-row:hover .tl-name,.tl-row:hover .tl-track{background:var(--c-primary-light)}.tl-name{width:160px;flex-shrink:0;padding:8px 16px;border-right:1px solid var(--c-border);display:flex;flex-direction:column;justify-content:center;gap:3px}.tl-name-text{font-size:14px;font-weight:600;color:var(--c-text)}.tl-name-h{font-size:12px;color:var(--c-sub)}.tl-track{flex:1;position:relative;height:60px;overflow:hidden;cursor:crosshair;background-image:repeating-linear-gradient(to right,var(--c-border) 0,var(--c-border) 1px,transparent 1px,transparent calc(100% / 24))}.tl-track-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--c-placeholder);opacity:0;transition:opacity .15s;pointer-events:none}.tl-row:hover .tl-track-hint{opacity:1}.tl-shift{position:absolute;top:10px;height:40px;background:var(--c-primary-light);border:1px solid var(--p02);color:var(--c-primary);border-radius:var(--radius);padding:0 8px;font-size:11px;font-weight:600;display:flex;align-items:center;cursor:pointer;white-space:nowrap;overflow:hidden;transition:box-shadow .15s,transform .1s;min-width:32px;z-index:1}.tl-shift:hover{box-shadow:0 2px 8px #0078be40;transform:translateY(-1px);z-index:2}.tl-shift.shift-unsaved{border:2px dashed var(--c-primary)!important;opacity:.8}.month-table{width:100%;border-collapse:collapse;table-layout:fixed}.month-table th{padding:8px;text-align:center;font-size:12px;font-weight:600;color:var(--c-text);background:var(--c-disabled-bg);border-right:1px solid var(--c-border);border-bottom:1px solid var(--c-border);position:sticky;top:0;z-index:10}.month-table th:last-child{border-right:none}.month-table th.sat{color:var(--c-primary)}.month-table th.sun{color:var(--c-error)}.m-cell{vertical-align:top;padding:8px;height:88px;cursor:pointer;border-right:1px solid var(--c-border);border-bottom:1px solid var(--c-border);transition:background .1s}.m-cell:last-child{border-right:none}.m-cell:hover{background:var(--c-primary-light)}.m-cell.other,.m-cell.oop{background:var(--c-bg);cursor:default}.m-cell.other:hover,.m-cell.oop:hover{background:var(--c-bg)}.m-num{font-size:13px;font-weight:600;margin-bottom:4px;color:var(--c-text);line-height:1;padding:2px 0}.m-num.sat{color:var(--c-primary)}.m-num.sun{color:var(--c-error)}.m-num.today{background:var(--c-primary);color:#fff;border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:12px}.m-bars{display:flex;flex-direction:column;gap:2px;margin-top:2px}.m-bar{background:var(--c-surface);border:1px solid var(--c-primary);color:var(--c-primary);border-radius:var(--radius);padding:1px 4px;font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-bar.unsaved{border-style:dashed}.m-more{font-size:10px;color:var(--c-sub);padding:1px 0}.schedule-list-item{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:16px 24px;display:flex;align-items:center;gap:24px;margin-bottom:12px;transition:box-shadow .15s;cursor:pointer}.schedule-list-item:hover{box-shadow:0 2px 8px #00000014}.sli-title{font-size:16px;font-weight:600;color:var(--c-text)}.sli-period{font-size:13px;color:var(--c-sub);margin-top:3px}.s-sublink{display:flex;align-items:center;gap:6px;padding:3px 16px 3px 36px;font-size:12px;color:var(--c-placeholder);cursor:pointer;transition:color .12s;margin-bottom:1px;text-decoration:none;border-radius:var(--radius)}.s-sublink:hover{color:var(--c-text);text-decoration:none}.s-sublink.active{color:var(--c-primary-h)}.year-filter{display:flex;gap:4px;padding:12px 24px 0;flex-wrap:wrap;flex-shrink:0}.yf-btn{border:1px solid var(--c-border);background:var(--c-surface);border-radius:var(--radius-pill);height:32px;padding:0 14px;font-size:13px;cursor:pointer;color:var(--c-sub);transition:all .12s;font-family:inherit}.yf-btn:hover{background:var(--c-disabled-bg)}.yf-btn.active{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}.breadcrumb{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--c-sub);padding:2px 0}.breadcrumb-link{color:var(--c-primary);cursor:pointer;font-weight:500}.breadcrumb-link:hover{text-decoration:underline}.breadcrumb-sep{color:var(--c-placeholder)}.store-list-wrap{padding:16px 24px;overflow-x:auto}.store-list-table{width:100%;border-collapse:collapse;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);overflow:hidden}.store-list-table th{padding:10px 16px;text-align:left;font-size:12px;font-weight:600;color:var(--c-sub);background:var(--c-disabled-bg);border-bottom:1px solid var(--c-border)}.store-list-table th:last-child{text-align:right}.store-row{cursor:pointer;transition:background .1s}.store-row:hover{background:var(--c-primary-light)}.store-row td{padding:14px 16px;border-bottom:1px solid var(--c-border);font-size:14px;vertical-align:middle}.store-row:last-child td{border-bottom:none}.store-row-name{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--c-text)}.store-row-sub{font-size:12px;color:var(--c-sub);margin-top:2px;font-weight:300}.store-row-arrow{text-align:right;color:var(--c-placeholder);font-size:18px}.schedule-list-wrap{padding:16px 24px;flex:1;overflow-y:auto}.sli-empty{padding:48px 24px;text-align:center;color:var(--c-sub)}.sli-info{flex:1;min-width:0}.sli-owner{font-size:12px;color:var(--c-sub);margin-top:2px}.mobile-header,.sidebar-backdrop{display:none}@media (max-width: 1180px){.app-topbar{display:none}.app-shell{height:100vh}.sidebar{position:fixed;left:-260px;top:0;bottom:0;height:100%;z-index:300;transition:left .25s ease}.sidebar.mobile-open{left:0;box-shadow:4px 0 24px #00000059}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:299}.mobile-header{display:flex;align-items:center;gap:12px;height:48px;padding:0 16px;background:var(--c-primary);flex-shrink:0}.mobile-header-title{color:#fff;font-size:15px;font-weight:600}.hamburger-btn{color:#fff;font-size:22px;padding:4px 8px;border-radius:var(--radius);transition:background .1s}.hamburger-btn:hover{background:#ffffff26}}@media (max-width: 767px){.page-hd{padding:12px 16px}.edit-hd{padding:8px 12px;gap:8px}.cal-wrap{padding:8px}.store-list-wrap,.schedule-list-wrap{padding:8px 16px}.m-cell{height:72px;padding:4px}.m-bar{font-size:9px}.schedule-list-item{padding:12px 16px;gap:12px}}
