:root{--bg: #f4f6f9;--panel: #ffffff;--border: #dbe1ea;--text: #1c2530;--text-muted: #5b6b7c;--accent: #2f5fac;--accent-contrast: #ffffff;--danger: #b3261e;--danger-bg: #fdecea;--success: #1e7a3c;--success-bg: #e8f6ec;--warning: #8a5a00;--warning-bg: #fff4e0;--neutral-bg: #eef1f5;--radius: 8px;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--accent)}.app-shell{display:flex;min-height:100vh}.app-nav{width:230px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:4px}.app-nav h1{font-size:15px;margin:0 8px 16px}.app-nav a{display:block;padding:8px 10px;border-radius:var(--radius);color:var(--text);text-decoration:none;font-size:14px}.app-nav a:hover{background:var(--neutral-bg)}.app-nav a.active{background:var(--accent);color:var(--accent-contrast)}.app-main{flex:1;min-width:0;padding:20px 28px 60px}.app-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}.app-header h2{margin:0;font-size:20px}.auth-widget{display:flex;align-items:center;gap:8px;font-size:13px}.auth-widget input{width:220px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:20px}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.stat-card .value{font-size:26px;font-weight:600}.stat-card .label{font-size:13px;color:var(--text-muted)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:none}.table-wrap{overflow-x:auto}button,.btn{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:var(--radius);padding:6px 12px;cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}button.danger{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font:inherit;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text)}textarea{width:100%;resize:vertical}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--neutral-bg);color:var(--text-muted);white-space:nowrap}.badge.success{background:var(--success-bg);color:var(--success)}.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.warning{background:var(--warning-bg);color:var(--warning)}.badge.info{background:#e3ecfb;color:var(--accent)}.state-block{padding:24px;text-align:center;color:var(--text-muted)}.state-block.error{color:var(--danger)}.field-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.field{display:flex;flex-direction:column;gap:4px;font-size:13px}.field label{color:var(--text-muted)}.notice{border:1px solid var(--border);background:var(--neutral-bg);border-radius:var(--radius);padding:10px 12px;font-size:13px;color:var(--text-muted);margin-bottom:16px}.notice.warning{background:var(--warning-bg);color:var(--warning);border-color:#f0d9a8}.notice.danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}.notice.success{background:var(--success-bg);color:var(--success);border-color:var(--success)}.notice .hint{margin-top:6px;color:var(--text)}.preview-box{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:12px 14px;margin-bottom:12px}.preview-box .message{white-space:pre-wrap;word-break:break-word;background:var(--neutral-bg);border-radius:var(--radius);padding:10px 12px;margin:8px 0;font-size:14px}.preview-box .meta{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--text-muted)}.cta{display:inline-block;padding:8px 14px;border-radius:var(--radius);background:var(--accent);color:var(--accent-contrast);text-decoration:none;font-weight:600}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:8px 0 16px;padding:0;list-style:none;counter-reset:step}.steps li{counter-increment:step;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:10px 12px;font-size:13px}.steps li:before{content:counter(step);display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;background:var(--accent);color:var(--accent-contrast);font-size:12px;margin-right:8px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.muted{color:var(--text-muted)}.calendar-grid{display:grid;gap:8px}.calendar-day{border:1px solid var(--border);border-radius:var(--radius);min-height:220px;padding:8px;background:var(--panel)}.calendar-day .day-label{font-weight:600;font-size:13px;margin-bottom:6px}.calendar-entry{border-left:3px solid var(--accent);background:var(--neutral-bg);border-radius:4px;padding:6px 8px;margin-top:6px;font-size:12px}.calendar-entry .actions{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap}.calendar-entry .actions button{padding:2px 6px;font-size:11px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 20px;font-size:13px;margin-bottom:16px}.detail-grid .label{color:var(--text-muted);font-size:12px}pre.json-view{background:var(--neutral-bg);padding:10px;border-radius:var(--radius);overflow-x:auto;font-size:12px}.recent-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.recent-list a{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}
