body{background:var(--color-background);color:var(--color-text);font-family:var(--font-body);margin:0}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);height:52px;box-shadow:var(--shadow-sm);flex-shrink:0;align-items:center;gap:28px;padding:0 24px;display:flex}.brand{white-space:nowrap;line-height:1.15}.brand .title{font-family:var(--font-display);font-weight:800;font-size:var(--text-md);color:var(--color-primary)}.brand .subtitle{font-size:var(--text-xs);color:var(--color-text-secondary)}.topnav{gap:28px;display:flex}.topnav a{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);border-bottom:2px solid #0000;padding:6px 2px}.topnav a.active{font-weight:var(--weight-bold);color:var(--color-primary);border-bottom-color:var(--color-primary)}.content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.page-header,.subtabs{flex:none}#tab-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}#tab-content>*{flex:none}#tab-content>.mresource{flex:auto;min-height:0}.page-header{background:var(--color-surface);padding:14px 24px 10px}.page-title{font-size:var(--text-lg);font-weight:var(--weight-bold);margin:0}.page-subtitle{font-size:var(--text-xs);color:var(--color-text-secondary);margin:2px 0 0}.subtabs{background:var(--color-surface);border-bottom:1px solid var(--color-border);gap:4px;padding:0 16px;display:flex;overflow-x:auto}.subtab{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px}.subtab:hover{color:var(--color-text)}.subtab.active{color:var(--color-primary);font-weight:var(--weight-bold);border-bottom-color:var(--color-primary)}.load-error{color:var(--color-error);font-size:var(--text-sm);padding:16px 24px}.mpasskeys{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.mpasskey{align-items:center;gap:12px;display:flex}.mpasskey-name{font-weight:600}.mpasskey-date{color:#6b7280;flex:1;font-size:12px}.mphones,.mphones-rows{flex-direction:column;gap:6px;display:flex}.mphones-row,.mphones-add{align-items:center;gap:4px;display:flex}.mphones-no{text-align:right;width:16px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;font-size:12px}.mphones-input,.mphones-add .minput{flex:1;width:auto;min-width:0}.mphones-btn{color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px;font-size:12px;line-height:1}.mphones-btn:hover:not(:disabled){background:var(--color-primary-light);color:var(--color-primary)}.mphones-btn:disabled{opacity:.3;cursor:default}.mphones-msg{color:var(--color-text-secondary);font-size:11px}.mphones-msg:empty{display:none}.mweekdays{flex-wrap:wrap;gap:6px;padding:4px 0;display:flex}.mweekday{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:32px;height:32px;font-family:inherit;font-size:var(--text-sm);cursor:pointer;background:#fff}.mweekday.on{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.msub{border-top:1px solid var(--color-border);margin-top:16px;padding-top:12px}.msub-title{font-size:var(--text-sm);font-weight:var(--weight-bold);margin-bottom:4px}.msub-desc{color:var(--color-text-secondary);margin:0 0 8px;font-size:11px}.msub-list{flex-direction:column;gap:6px;display:flex}.msub-item{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-background);font-size:var(--text-sm);cursor:pointer;align-items:center;gap:8px;padding:6px 10px;display:flex}.msub-item:hover{border-color:var(--color-primary)}.msub-item.static{cursor:default}.msub-item.static:hover{border-color:var(--color-border)}.msub-text{flex:1}.msub-note{color:var(--color-text-secondary);margin-left:8px;font-size:11px}.msub-empty{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0}.msub-edit,.msub-add{align-items:center;gap:6px;display:flex}.msub-add{border-top:1px dashed var(--color-border);margin-top:8px;padding-top:8px}.msub-label{flex-shrink:0;width:112px}.msub-address{flex:1}.mpanel-head{padding:16px 16px 0}.maccount-head{border-top:1px solid var(--color-border);margin-top:8px}.mpanel{max-width:576px;padding:16px}.mcard{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:16px}.mcard-section{border-top:1px solid var(--color-border);margin-top:12px;padding-top:12px}.mcard-subtitle{font-size:var(--text-xs);font-weight:var(--weight-bold);margin-bottom:8px}.mcard-footer{border-top:1px solid var(--color-border);align-items:center;gap:12px;margin-top:16px;padding-top:12px;display:flex}.mnote{color:var(--color-text-secondary);margin:12px 0 0;font-size:11px}.mmsg{font-size:var(--text-xs);color:var(--color-text-secondary)}.mmsg.msuccess{color:var(--color-success)}.mcard .msection-desc{margin:0 0 12px}.mcard .merror{margin:12px 0 0}.mshift{padding:16px}.mshift-toolbar{align-items:center;gap:12px;margin-bottom:12px;display:flex}.mshift-month{font-size:var(--text-base);font-weight:var(--weight-bold)}.mshift-legend{color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:12px;margin-left:auto;font-size:11px;display:flex}.mlegend-item{align-items:center;gap:4px;display:flex}.mlegend-swatch{border-radius:3px;width:14px;height:14px;display:inline-block}.mshift-help{margin-bottom:8px}.mshift-table{border-collapse:collapse;font-size:var(--text-xs)}.mshift-table th,.mshift-table td{border-bottom:1px solid var(--color-border)}.mshift-driver-head,.mshift-driver{z-index:1;border-right:1px solid var(--color-border);text-align:left;white-space:nowrap;position:sticky;left:0}.mshift-driver-head{background:var(--color-background);font-weight:var(--weight-medium);padding:6px 8px}.mshift-driver{background:var(--color-surface);padding:6px 8px}.mshift-driver-btn{font-family:inherit;font-size:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0}.mshift-driver-btn:hover{text-decoration:underline}.mshift-driver-name{font-weight:var(--weight-medium)}.mshift-driver-hours{color:var(--color-text-secondary);margin-left:4px;font-size:10px}.mshift-day{text-align:center;min-width:34px;font-weight:var(--weight-medium);background:var(--color-background);padding:4px}.mshift-day.wd-0{color:#dc2626;background:#fef2f2}.mshift-day.wd-6{color:var(--color-info);background:#eff6ff}.mshift-wd{font-size:10px}.mshift-cell-td{border-right:1px solid var(--color-border);text-align:center;padding:0}.mshift-cell{width:100%;height:28px;font-family:inherit;font-size:var(--text-xs);cursor:pointer;border:none}.mshift-cell:hover{opacity:.8}.mshift-cell:disabled{opacity:.4}.mshift.readonly .mshift-cell,.mshift.readonly .mshift-driver-btn{cursor:default}.mshift.readonly .mshift-cell:hover{opacity:1}.mshift.readonly .mshift-driver-btn:hover{text-decoration:none}.mshift-cell.working,.mlegend-swatch.working{color:#064e3b;background:#a7f3d0}.mshift-cell.custom,.mlegend-swatch.custom{color:#78350f;background:#fde68a}.mshift-cell.off,.mlegend-swatch.off{color:#7f1d1d;background:#fecaca}.mshift-cell.override{box-shadow:inset 0 0 0 2px var(--color-info);font-weight:var(--weight-bold)}.mlegend-swatch.override-sample{box-shadow:inset 0 0 0 2px var(--color-info);background:#fff}.mstack{font-size:var(--text-sm);flex-direction:column;gap:10px;display:flex}.mstack .msection-desc{margin:0}.mmini-label{font-size:11px;font-weight:var(--weight-medium);color:var(--color-text-secondary);margin-bottom:4px}.mgrid-2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mdivided{border-top:1px solid var(--color-border);padding-top:8px}.mspace-between{justify-content:space-between;display:flex}.mflex-end{justify-content:flex-end;gap:8px;display:flex}.mtime-row{align-items:center;gap:6px;display:flex}.mtime{width:112px}.mdash{color:var(--color-text-secondary)}.mpush-right{margin-left:auto}.mhours-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:6px 8px;display:flex}.mhours-row .mcheck{font-size:var(--text-xs);padding:0}.mhours-wd{text-align:center;width:24px;font-weight:var(--weight-bold)}.mhours-wd.wd-0{color:var(--color-error)}.mhours-wd.wd-6{color:var(--color-info)}
