:root{--sm-primary:#1976D2;--sm-success:#388E3C;--sm-danger:#D32F2F;--sm-warning:#F57C00;--sm-admin:#6A1B9A;--sm-owner:#E65100;--sm-bg:#F5F5F5;--sm-card-bg:#fff;--sm-text:#212121;--sm-text-sub:#757575;--sm-border:#E0E0E0;--sm-radius:12px;--sm-shadow:0 2px 8px rgba(0,0,0,.12);--sm-nav-h:60px;--sm-header-h:52px;}
.sm-app *,.sm-app *::before,.sm-app *::after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
.sm-app{font-family:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Meiryo',sans-serif;font-size:14px;color:var(--sm-text);background:var(--sm-bg);min-height:100vh;padding-bottom:calc(var(--sm-nav-h) + 16px);}
.sm-header{position:sticky;top:0;z-index:100;background:var(--sm-primary);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:var(--sm-header-h);box-shadow:0 2px 6px rgba(0,0,0,.2);}
.sm-header-admin{background:var(--sm-admin);}
.sm-header-owner{background:var(--sm-owner);}
.sm-title{font-size:16px;font-weight:700;margin:0;}
.sm-username{font-size:12px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;}
.sm-nav{position:fixed;bottom:0;left:0;right:0;z-index:200;display:flex;background:#fff;border-top:1px solid var(--sm-border);height:var(--sm-nav-h);box-shadow:0 -2px 8px rgba(0,0,0,.08);}
.sm-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:var(--sm-text-sub);font-size:10px;gap:2px;padding:4px;transition:color .2s;}
.sm-nav-item span:first-child{font-size:20px;}
.sm-nav-item.active{color:var(--sm-primary);}
.sm-nav-owner .sm-nav-item.active{color:var(--sm-owner);}
.sm-main{padding:12px;}
.sm-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.sm-section-header h3{font-size:16px;font-weight:700;margin:0;}
.sm-month-nav{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:var(--sm-radius);padding:10px 16px;margin-bottom:12px;box-shadow:var(--sm-shadow);}
.sm-month-btn{text-decoration:none;color:var(--sm-primary);font-size:22px;font-weight:bold;padding:4px 12px;border-radius:8px;}
.sm-month-title{font-size:16px;font-weight:700;}
.sm-calendar{background:#fff;border-radius:var(--sm-radius);overflow:hidden;box-shadow:var(--sm-shadow);margin-bottom:12px;}
.sm-cal-header{display:grid;grid-template-columns:repeat(7,1fr);background:#ECEFF1;}
.sm-cal-dow{text-align:center;padding:8px 0;font-size:11px;font-weight:700;color:var(--sm-text-sub);}
.sm-cal-body{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--sm-border);}
.sm-cal-cell{background:#fff;min-height:48px;padding:4px;display:flex;flex-direction:column;align-items:center;}
.sm-cal-cell.sm-empty{background:#FAFAFA;}
.sm-cal-cell.sm-today{background:#E3F2FD;}
.sm-cal-date{font-size:12px;font-weight:600;line-height:1;margin-bottom:4px;}
.sm-cal-date.sm-sun{color:#e53935;}
.sm-cal-date.sm-sat{color:#1976D2;}
.sm-cal-shift{font-size:10px;color:#fff;border-radius:4px;padding:1px 4px;font-weight:700;line-height:1.4;}
.sm-legend{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0;margin-bottom:8px;}
.sm-legend-item{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--sm-text-sub);}
.sm-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;}
.sm-btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px;text-decoration:none;transition:opacity .15s,transform .1s;-webkit-appearance:none;}
.sm-btn:active{opacity:.8;transform:scale(.98);}
.sm-btn-primary{background:var(--sm-primary);color:#fff;}
.sm-btn-success{background:var(--sm-success);color:#fff;}
.sm-btn-danger{background:var(--sm-danger);color:#fff;}
.sm-btn-outline{background:#fff;color:var(--sm-primary);border:2px solid var(--sm-primary);}
.sm-btn-full{width:100%;margin-top:8px;display:flex;}
.sm-btn-sm{padding:6px 12px;font-size:12px;}
.sm-card-form{background:#fff;border-radius:var(--sm-radius);padding:16px;box-shadow:var(--sm-shadow);}
.sm-form-group{margin-bottom:14px;}
.sm-form-group label{display:block;font-size:12px;font-weight:600;color:var(--sm-text-sub);margin-bottom:4px;}
.sm-form-group input,.sm-form-group select,.sm-form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--sm-border);border-radius:8px;font-size:16px;outline:none;transition:border-color .15s;background:#fff;color:var(--sm-text);-webkit-appearance:none;}
.sm-form-group input:focus,.sm-form-group select:focus,.sm-form-group textarea:focus{border-color:var(--sm-primary);box-shadow:0 0 0 3px rgba(25,118,210,.15);}
.sm-form-group textarea{resize:vertical;}
.sm-alert{padding:12px 16px;border-radius:8px;margin-bottom:12px;font-size:13px;font-weight:500;}
.sm-alert-success{background:#E8F5E9;color:#2E7D32;border-left:4px solid #4CAF50;}
.sm-alert-error{background:#FFEBEE;color:#C62828;border-left:4px solid #f44336;}
.sm-alert-warning{background:#FFF8E1;color:#E65100;border-left:4px solid #FF9800;}
.sm-alert-info{background:#E3F2FD;color:#1565C0;border-left:4px solid #2196F3;}
.sm-wish-list{display:flex;flex-direction:column;gap:8px;}
.sm-wish-card{background:#fff;border-radius:var(--sm-radius);padding:12px 16px;box-shadow:var(--sm-shadow);display:flex;align-items:center;justify-content:space-between;}
.sm-admin-wish{flex-wrap:wrap;gap:8px;}
.sm-wish-info{flex:1;}
.sm-wish-staff{font-weight:700;font-size:14px;}
.sm-wish-date{font-size:13px;color:var(--sm-text-sub);}
.sm-wish-reason{font-size:12px;color:var(--sm-text-sub);}
.sm-wish-actions{display:flex;gap:8px;}
.sm-wish-status{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;white-space:nowrap;}
.sm-status-pending{background:#FFF8E1;color:#E65100;}
.sm-status-approved{background:#E8F5E9;color:#2E7D32;}
.sm-status-rejected{background:#FFEBEE;color:#C62828;}
.sm-tab-buttons{display:flex;gap:4px;margin-bottom:12px;}
.sm-tab-btn{flex:1;padding:8px;border:1px solid var(--sm-border);background:#fff;border-radius:8px;font-size:12px;cursor:pointer;transition:all .15s;}
.sm-tab-btn.active{background:var(--sm-primary);color:#fff;border-color:var(--sm-primary);}
.sm-tab-content{display:none;}
.sm-tab-content.active{display:block;}
.sm-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--sm-radius);box-shadow:var(--sm-shadow);margin-bottom:12px;}
.sm-shift-table{border-collapse:collapse;min-width:100%;background:#fff;}
.sm-shift-table th,.sm-shift-table td{border:1px solid var(--sm-border);text-align:center;padding:0;white-space:nowrap;}
.sm-th-name{padding:8px;font-size:12px;background:#ECEFF1;min-width:70px;}
.sm-th-day{padding:4px 2px;font-size:11px;min-width:22px;background:#ECEFF1;}
.sm-th-day.sm-sun{color:#e53935;}
.sm-th-day.sm-sat{color:#1976D2;}
.sm-td-name{padding:6px 8px;font-size:12px;font-weight:600;background:#FAFAFA;}
.sm-td-cell{width:24px;height:28px;font-size:10px;font-weight:700;cursor:pointer;transition:opacity .15s;}
.sm-td-cell:hover{opacity:.8;}
.sm-salary-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;}
.sm-summary-card{background:#fff;border-radius:var(--sm-radius);padding:12px 8px;text-align:center;box-shadow:var(--sm-shadow);}
.sm-summary-val{font-size:13px;font-weight:800;color:var(--sm-owner);}
.sm-summary-label{font-size:10px;color:var(--sm-text-sub);margin-top:4px;}
.sm-salary-list{display:flex;flex-direction:column;gap:8px;}
.sm-salary-card{background:#fff;border-radius:var(--sm-radius);padding:14px;box-shadow:var(--sm-shadow);}
.sm-salary-name{font-size:15px;font-weight:700;margin-bottom:8px;}
.sm-salary-detail{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--sm-text-sub);margin-bottom:4px;}
.sm-salary-breakdown{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;margin-bottom:4px;}
.sm-salary-total{font-size:15px;font-weight:800;color:var(--sm-owner);}
.sm-ot{color:var(--sm-danger);}
.sm-staff-list{display:flex;flex-direction:column;gap:8px;}
.sm-staff-card{background:#fff;border-radius:var(--sm-radius);padding:12px 16px;box-shadow:var(--sm-shadow);display:flex;align-items:center;justify-content:space-between;}
.sm-staff-name{font-size:14px;font-weight:700;}
.sm-staff-pay{font-size:12px;color:var(--sm-text-sub);}
.sm-staff-actions{display:flex;gap:6px;}
.sm-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;}
.sm-modal-overlay{position:absolute;inset:0;background:rgba(0,0,0,.5);}
.sm-modal-content{position:relative;z-index:1;background:#fff;border-radius:16px 16px 0 0;padding:20px;width:100%;max-width:480px;animation:slideUp .2s ease-out;}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.sm-modal-content h4{font-size:16px;font-weight:700;margin:0 0 16px;}
.sm-shift-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.sm-type-btn{padding:14px;color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:opacity .15s;}
.sm-type-btn:active{opacity:.8;}
.sm-empty-state{text-align:center;padding:40px 20px;color:var(--sm-text-sub);}
.sm-empty-icon{font-size:48px;margin-bottom:12px;}
.shift-login-notice{background:#E3F2FD;border-radius:var(--sm-radius);padding:20px;text-align:center;}
.shift-login-notice a{color:var(--sm-primary);}
@media print{.sm-nav,.sm-header,.sm-btn,.sm-modal{display:none!important;}.sm-app{padding-bottom:0;}.sm-table-wrap{overflow:visible;}}
@media(min-width:600px){.sm-main{padding:16px;max-width:800px;margin:0 auto;}}
