@import"https://fonts.googleapis.com/css2?family=Archivo:ital,wdth,wght@0,62..125,400..800&display=swap";:root{--ink: #1b1324;--ink-2: #574e63;--page: #f5f4f2;--card: #ffffff;--sidebar: #150d1f;--purple: #4a1675;--violet: #7a00d1;--accent: #9600ff;--orange: #ff8a00;--orange-ink: #1e0f00;--line: #e7e4ea;--line-strong: #d5d0dc;--overdue-bg: #fde8e8;--overdue-ink: #9b1c1c;--overdue-dot: #c42b2b;--renewal-bg: #fff1dc;--renewal-ink: #7a4000;--renewal-dot: #ff8a00;--active-bg: #e3f4ea;--active-ink: #146c3a;--active-dot: #2e9e5b;--past-bg: #efedf1;--past-ink: #4f4760;--past-dot: #8e83a0;--contract-bg: #f3e8ff;--contract-ink: #7a00d1;--rider-bg: #e8eefc;--rider-ink: #1f4fb8;--bike-bg: #fff1e0;--bike-ink: #9a4d00;--battery-bg: #e5f6ec;--battery-ink: #17693b;--radius: 6px;--touch: 44px;--sidebar-width: 248px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--page);color:var(--ink);font-family:Archivo,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3{font-stretch:125%;font-weight:800;margin:0;letter-spacing:-.01em}h1{font-size:26px}h2{font-size:19px}h3{font-size:16px}.label{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}a{color:var(--violet);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:3px}.shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh}.sidebar{background:var(--sidebar);color:#fff;display:flex;flex-direction:column;padding:18px 12px 12px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:8px;padding:0 8px 18px}.brand-mark{width:26px;height:26px;border-radius:5px;background:linear-gradient(135deg,var(--accent),var(--purple));flex:none}.brand-word{font-stretch:125%;font-weight:800;font-size:17px;letter-spacing:.02em}.nav-group{margin-bottom:14px}.nav-group>.label{color:#8d82a0;padding:0 8px 6px}.nav-item{display:flex;align-items:center;gap:10px;min-height:var(--touch);padding:0 10px;border-radius:var(--radius);color:#d9d3e2;font-weight:600;font-size:14px}.nav-item:hover{background:#241733;text-decoration:none;color:#fff}.nav-item[aria-current=page]{background:var(--purple);color:#fff}.nav-count{margin-left:auto;font-size:12px;font-weight:700;background:#2d1c3f;border-radius:10px;padding:1px 7px}.nav-item[aria-current=page] .nav-count{background:#ffffff38}.nav-count.is-urgent{background:var(--overdue-dot);color:#fff}.sidebar-user{margin-top:auto;border-top:1px solid #2a1c3a;padding:12px 10px 4px;display:flex;align-items:center;gap:10px}.avatar{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px;flex:none}.sidebar-user-name{font-weight:700;font-size:13px;line-height:1.2}.sidebar-user-role{font-size:11px;color:#8d82a0;text-transform:capitalize}.main{padding:22px 26px 60px;min-width:0}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.updated{font-size:12px;color:var(--ink-2)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:22px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;text-align:left;display:block;width:100%;min-height:var(--touch);font-family:inherit;color:inherit;cursor:pointer}.card:hover{border-color:var(--line-strong);text-decoration:none}.card-number{font-stretch:125%;font-weight:800;font-size:34px;line-height:1.05;margin:6px 0 2px}.card-note{font-size:12px;color:var(--ink-2)}.bar{height:4px;background:var(--line);border-radius:2px;margin-top:10px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--accent);border-radius:2px}.bar.is-overdue>span{background:var(--overdue-dot)}.bar.is-renewal>span{background:var(--renewal-dot)}.bar.is-active>span{background:var(--active-dot)}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:18px;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}.panel-body{padding:14px 16px}.tag{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px 3px 8px;font-size:12px;font-weight:700;white-space:nowrap}.tag:before{content:"";width:7px;height:7px;border-radius:50%;flex:none}.tag.overdue{background:var(--overdue-bg);color:var(--overdue-ink)}.tag.overdue:before{background:var(--overdue-dot)}.tag.renewal{background:var(--renewal-bg);color:var(--renewal-ink)}.tag.renewal:before{background:var(--renewal-dot)}.tag.active{background:var(--active-bg);color:var(--active-ink)}.tag.active:before{background:var(--active-dot)}.tag.past{background:var(--past-bg);color:var(--past-ink)}.tag.past:before{background:var(--past-dot)}.reason{font-size:12.5px;color:var(--ink-2);margin-top:4px}.search-wrap{margin-bottom:18px}.search-box{width:100%;min-height:52px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--card);padding:0 16px;font-family:inherit;font-size:17px;color:var(--ink)}.search-box::placeholder{color:#938aa1}.results{display:grid;gap:10px}.result{display:grid;grid-template-columns:62px 1fr auto;gap:14px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;min-height:var(--touch);color:inherit}.result:hover{border-color:var(--line-strong);text-decoration:none}.thumb{width:62px;height:46px;border-radius:4px;background:var(--bike-bg);color:var(--bike-ink);display:grid;place-items:center;font-weight:800;font-size:12px;flex:none}.result-name{font-weight:700}.codes{font-size:12.5px;color:var(--ink-2)}.matched{font-size:11px;font-weight:700;background:var(--contract-bg);color:var(--contract-ink);border-radius:4px;padding:1px 6px;margin-left:6px}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);padding:8px 12px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:var(--touch);padding:0 16px;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--card);color:var(--ink);font-family:inherit;font-size:14px;font-weight:700;cursor:pointer}.btn:hover{border-color:var(--ink-2);text-decoration:none}.btn.primary{background:var(--orange);color:var(--orange-ink);border-color:var(--orange)}.btn.quiet{min-height:34px;padding:0 10px;font-size:13px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.copy{background:none;border:0;padding:2px 4px;margin:-2px -4px;font:inherit;color:inherit;cursor:pointer;border-radius:4px;min-height:28px;text-align:left}.copy:hover{background:var(--contract-bg)}.copied{font-size:11px;font-weight:700;color:var(--active-ink);margin-left:6px}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:2px 18px;margin:10px 0}.fact-label{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}.fact-value{font-weight:700;font-size:15px;margin-bottom:8px}.not-recorded{color:var(--ink-2);font-weight:600;font-style:normal}details.more>summary{cursor:pointer;min-height:var(--touch);display:flex;align-items:center;font-weight:700;font-size:13.5px;color:var(--violet);list-style:none}details.more>summary::-webkit-details-marker{display:none}details.more>summary:before{content:"▸";margin-right:7px}details.more[open]>summary:before{content:"▾"}.section-contract{border-left:3px solid var(--contract-ink)}.section-rider{border-left:3px solid var(--rider-ink)}.section-bike{border-left:3px solid var(--bike-ink)}.section-battery{border-left:3px solid var(--battery-ink)}.recent{background:#fffaf2;border:1px solid var(--renewal-dot);border-radius:var(--radius);padding:12px 14px;margin-bottom:18px}.recent-row{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:13.5px;flex-wrap:wrap}.recent-row+.recent-row{border-top:1px dashed var(--line-strong)}.tv{background:var(--sidebar);color:#fff;min-height:100vh;padding:34px 40px}.tv h1{font-size:44px}.tv .tv-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:26px}.tv-card{background:#1f1430;border-radius:10px;padding:22px 24px}.tv-number{font-stretch:125%;font-weight:800;font-size:62px;line-height:1}.tv-label{font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#a79bb8}.tv-list{margin-top:22px;font-size:19px}.tv-list div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #2d1f40}.signin{min-height:100vh;display:grid;place-items:center;background:var(--sidebar);padding:24px}.signin-card{background:var(--card);border-radius:10px;padding:28px;width:100%;max-width:380px}@media (max-width: 860px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;gap:10px;overflow-x:auto;padding:10px 12px}.brand{padding:0 6px 0 0}.nav-group{display:flex;gap:6px;margin:0}.nav-group>.label{display:none}.nav-item{white-space:nowrap;padding:0 12px}.sidebar-user{margin-top:0;margin-left:auto;border-top:0;padding:0 0 0 10px}.sidebar-user-text{display:none}.main{padding:16px 14px 54px}.result{grid-template-columns:50px 1fr;grid-template-areas:"thumb name" "thumb codes";row-gap:2px}.result-tag{grid-column:2}table.stacks thead{display:none}table.stacks tr{display:grid;gap:2px;padding:10px 0;border-bottom:1px solid var(--line)}table.stacks td{border:0;padding:1px 12px}table.stacks td[data-label]:before{content:attr(data-label);display:block;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}.num{text-align:left}}.view-as{width:100%;min-height:var(--touch);border-radius:var(--radius);border:1px solid #2d1c3f;background:#241733;color:#e7e1ee;font-family:inherit;font-size:13.5px;font-weight:600;padding:0 10px}.viewing-as{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--contract-bg);border:1px solid var(--violet);border-radius:var(--radius);padding:10px 14px;margin-bottom:16px;font-size:13.5px}.roles-table th{white-space:normal;max-width:92px}.roles-table input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}.roles-table td{min-height:var(--touch)}
