:root{font-family:Inter,system-ui,sans-serif;color:#101828;background:#fff}*{box-sizing:border-box}.cn-card{border:1px solid #e4e7ec;border-radius:12px;padding:20px}.cn-button{border:0;border-radius:10px;padding:11px 16px;cursor:pointer}.cn-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--cn-space-2);font:inherit;font-weight:600;border:1px solid transparent;border-radius:var(--cn-radius-sm);padding:10px 20px;cursor:pointer;text-decoration:none;transition:background-color var(--cn-duration-fast) ease,color var(--cn-duration-fast) ease,transform var(--cn-duration-fast) ease,box-shadow var(--cn-duration-fast) ease}.cn-btn:active{transform:translateY(1px)}.cn-btn:disabled,.cn-btn[aria-busy=true]{opacity:.6;cursor:not-allowed}.cn-btn--primary{background:var(--cn-navy-800);color:#fff}.cn-btn--primary:hover{background:var(--cn-navy-700);box-shadow:var(--cn-shadow-md)}.cn-btn--secondary{background:transparent;color:var(--cn-navy-800);border-color:var(--cn-navy-800)}.cn-btn--secondary:hover{background:var(--cn-bg-muted)}.cn-btn--ghost{background:transparent;color:var(--cn-text-secondary)}.cn-btn--ghost:hover{background:var(--cn-bg-muted)}.cn-btn--danger{background:var(--cn-danger);color:#fff}.cn-btn--danger:hover{background:#991b1b}.cn-btn--sm{padding:6px 14px;font-size:.85rem}.cn-btn--lg{padding:14px 28px;font-size:1.05rem;border-radius:var(--cn-radius-md)}.cn-btn--full{width:100%}.cn-btn__spinner{width:14px;height:14px;margin-right:8px;border:2px solid;border-top:2px solid transparent;border-radius:50%;animation:cn-spin .7s linear infinite}@keyframes cn-spin{to{transform:rotate(1turn)}}.cn-badge{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;letter-spacing:.02em;padding:4px 10px;border-radius:999px;white-space:nowrap}.cn-badge--neutral{background:var(--cn-bg-muted);color:var(--cn-text-secondary)}.cn-badge--success{background:var(--cn-success-bg);color:var(--cn-success)}.cn-badge--warning{background:var(--cn-warning-bg);color:var(--cn-warning)}.cn-badge--danger{background:var(--cn-danger-bg);color:var(--cn-danger)}.cn-badge--info{background:var(--cn-info-bg);color:var(--cn-info)}.cn-badge--amber{background:var(--cn-amber-100);color:#8a6d14}.cn-card{background:var(--cn-bg);border:1px solid var(--cn-border,#e2e8f0);border-radius:var(--cn-radius-md);box-shadow:var(--cn-shadow-sm);padding:var(--cn-space-6)}.cn-card--dark{background:var(--cn-navy-800);color:var(--cn-text-inverse);border:none}.cn-card--lg{padding:var(--cn-space-8);border-radius:var(--cn-radius-lg)}.cn-stat{display:flex;flex-direction:column;gap:4px}.cn-stat__label{font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--cn-text-muted)}.cn-stat__value{font-size:1.75rem;font-weight:800;color:var(--cn-text)}.cn-stat__hint{font-size:.8rem;color:var(--cn-text-muted)}.cn-field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--cn-space-4)}.cn-label{font-size:.85rem;font-weight:600}.cn-input,.cn-label{color:var(--cn-text)}.cn-input{width:100%;padding:10px 14px;font:inherit;background:var(--cn-bg);border:1px solid #cbd5e1;border-radius:var(--cn-radius-sm);transition:border-color var(--cn-duration-fast) ease,box-shadow var(--cn-duration-fast) ease}.cn-input:hover{border-color:#94a3b8}.cn-input:focus{outline:none;border-color:var(--cn-amber-500);box-shadow:var(--cn-ring)}.cn-input--error{border-color:var(--cn-danger)}.cn-input__hint{font-size:.78rem;color:var(--cn-text-muted)}.cn-input__error{font-size:.8rem;color:var(--cn-danger);font-weight:500}.cn-table-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:var(--cn-radius-md);background:var(--cn-bg)}.cn-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:560px}.cn-table th{text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--cn-text-muted);background:var(--cn-bg-subtle,#f8fafc);padding:12px 16px;border-bottom:1px solid #e2e8f0}.cn-table td{padding:12px 16px;border-bottom:1px solid #f1f5f9}.cn-table tbody tr:nth-child(2n){background:#fafbfc}.cn-table tbody tr:hover{background:var(--cn-bg-muted)}.cn-table__cell--right{text-align:right}.cn-table__empty{padding:var(--cn-space-8);text-align:center;color:var(--cn-text-muted)}.cn-skeleton{display:block;height:14px;border-radius:4px;background:linear-gradient(90deg,#eef2f7 25%,#e2e8f0 50%,#eef2f7 75%);background-size:200% 100%;animation:cn-shimmer 1.4s ease infinite}@keyframes cn-shimmer{0%{background-position:200% 0}to{background-size:-200% 0}}.cn-spinner{display:inline-flex;color:var(--cn-navy-800);animation:cn-spin .8s linear infinite}.cn-progress{display:grid;grid-gap:var(--cn-space-3);gap:var(--cn-space-3)}.cn-progress__bar{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden}.cn-progress__fill{height:100%;background:linear-gradient(90deg,var(--cn-navy-800),var(--cn-amber-500));transition:width var(--cn-duration-slow) var(--cn-ease)}.cn-progress__fill--alert{background:linear-gradient(90deg,var(--cn-warning),var(--cn-danger))}.cn-progress__milestones{display:flex;justify-content:space-between;margin:0;padding:0;list-style:none;font-size:.75rem;color:var(--cn-text-muted)}.cn-progress__milestone.is-done{color:var(--cn-success);font-weight:600}.cn-progress__milestone.is-current{color:var(--cn-navy-800);font-weight:700}.cn-logo{-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (max-width:640px){.cn-card,.cn-card--lg{padding:var(--cn-space-4)}.cn-btn{min-height:44px;padding-inline:16px}.cn-btn--sm{min-height:40px}.cn-table-wrap{max-width:100%;-webkit-overflow-scrolling:touch}.cn-table{min-width:640px}.cn-progress__milestones{gap:8px;overflow-x:auto;padding-bottom:4px}.cn-progress__milestone{min-width:max-content}}:root{--drv-navy:#0b1c33;--drv-navy-800:#12294a;--drv-amber:#f0b429;--drv-bg:#f4f6f9}body{background:var(--drv-bg);color:var(--cn-text-primary);-webkit-tap-highlight-color:transparent}.drv-shell{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding-bottom:calc(64px + env(safe-area-inset-bottom))}.drv-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:var(--drv-navy);color:#fff}.drv-bottomnav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:560px;display:grid;grid-template-columns:1fr 1fr 1fr;background:#fff;border-top:1px solid #e2e8f0;padding-bottom:env(safe-area-inset-bottom);z-index:40}.drv-bottomnav a{display:grid;place-items:center;grid-gap:2px;gap:2px;padding:10px 0 8px;font-size:.72rem;font-weight:600;color:var(--cn-text-muted);text-decoration:none}.drv-bottomnav a[aria-current=page]{color:var(--drv-navy-800);box-shadow:inset 0 3px 0 var(--drv-amber)}.drv-duty{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:14px;background:var(--drv-navy);color:#fff}.drv-duty--off{background:#cbd5e1;color:var(--cn-text-primary)}.drv-duty-dot{width:10px;height:10px;border-radius:999px;background:#34d399;box-shadow:0 0 0 4px rgba(52,211,153,.25)}.drv-duty--off .drv-duty-dot{background:#94a3b8;box-shadow:none}.drv-job{display:block;background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:16px;text-decoration:none;color:inherit;box-shadow:0 1px 2px rgba(11,28,51,.06)}.drv-job:active{transform:scale(.99)}.drv-signature{touch-action:none;width:100%;height:200px;border:2px dashed #cbd5e1;border-radius:12px;background:#fff;display:block}.drv-bigbtn{width:100%;padding:16px;border-radius:14px;font-size:1rem;font-weight:700;border:none;cursor:pointer}.drv-bigbtn--primary{background:var(--drv-navy-800);color:#fff}.drv-bigbtn--amber{background:var(--drv-amber);color:#3a2b00}.drv-bigbtn--danger{background:#dc2626;color:#fff}.drv-bigbtn:disabled{opacity:.55;cursor:not-allowed}