:root{--se3-canvas: #f6f7f8;--se3-ink: #111315;--se3-ink-soft: #2b2f33;--se3-muted: #88939a;--se3-hairline: #e1e5e8;--se3-white: #ffffff;--bg: var(--se3-canvas);--surface: var(--se3-white);--surface-sunken: #eef0f2;--surface-inverse: var(--se3-ink);--text: var(--se3-ink);--text-secondary: #5a6469;--text-muted: var(--se3-muted);--text-on-dark: var(--se3-canvas);--text-on-dark-muted: #9aa4ab;--border: var(--se3-hairline);--border-strong: #cdd3d7;--border-inverse: #2a2e31;--primary: var(--se3-ink);--primary-hover: #23272b;--primary-text: var(--se3-canvas);--status-in-storage: #1f8a54;--status-in-storage-bg: #e7f3ec;--status-reserved: #b7791f;--status-reserved-bg: #fbf1de;--status-checked-out: #3b6ea5;--status-checked-out-bg: #e7eef6;--status-maintenance: #8a5cf6;--status-maintenance-bg: #efe9fd;--danger: #c0392b;--danger-bg: #fbeae7;--warning: #b7791f;--warning-bg: #fbf1de;--success: #1f8a54;--success-bg: #e7f3ec;--info: #3b6ea5;--info-bg: #e7eef6;--font-display: "Clash Grotesk", "Clash Grotesk Variable", system-ui, -apple-system, sans-serif;--font-body: "Clash Grotesk", "Clash Grotesk Variable", system-ui, -apple-system, sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--fs-display: clamp(30px, 6vw, 40px);--fs-h1: clamp(24px, 4.6vw, 30px);--fs-h2: clamp(19px, 3.2vw, 22px);--fs-h3: 17px;--fs-body: 15px;--fs-sm: 13px;--fs-xs: 11px;--fs-input: 16px;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--radius-pill: 500px;--radius-card: 16px;--radius-md: 10px;--radius-sm: 7px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--shadow-sm: 0 1px 2px rgba(17, 19, 21, .04), 0 1px 3px rgba(17, 19, 21, .06);--shadow-md: 0 4px 12px rgba(17, 19, 21, .08);--shadow-lg: 0 12px 40px rgba(17, 19, 21, .14);--sidebar-width: 248px;--topbar-height: 60px;--content-max: 1200px;--content-pad: var(--space-8);--content-pad-mobile: var(--space-4);--bp-sm: 600px;--bp-md: 860px;--bp-lg: 1080px;--tap-min: 44px;--transition: .14s ease}*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}body{font-family:var(--font-body);font-size:var(--fs-body);line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-wrap:break-word}#root{overflow-x:clip}img,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--fw-semibold);line-height:1.15;letter-spacing:-.01em}h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3)}:focus-visible{outline:2px solid var(--se3-ink);outline-offset:2px;border-radius:4px}.mono{font-family:var(--font-mono);font-feature-settings:"tnum" 1}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.wrap{flex-wrap:wrap}.grow{flex:1}.between{justify-content:space-between}.center{justify-content:center}.items-start{align-items:flex-start}.auto-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--auto-min, 220px),1fr));gap:var(--space-4)}.auto-grid>*{min-width:0}.show-sm,.show-md{display:none!important}@media (max-width: 600px){.hide-sm{display:none!important}.show-sm{display:revert!important}}@media (max-width: 860px){.hide-md{display:none!important}.show-md{display:revert!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-body);font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:1;padding:10px 20px;border-radius:var(--radius-pill);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background var(--transition),color var(--transition),border-color var(--transition),opacity var(--transition)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-text)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--surface-sunken)}.btn-ghost{background:transparent;color:var(--text)}.btn-ghost:hover:not(:disabled){background:var(--surface-sunken)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(.94)}.btn-sm{padding:7px 14px;font-size:var(--fs-xs)}.btn-lg{padding:13px 26px;font-size:var(--fs-body)}.btn-icon{padding:9px;border-radius:var(--radius-pill)}.btn-block{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-sm)}.card-pad{padding:var(--space-6)}.card-hover{transition:box-shadow var(--transition),border-color var(--transition)}.card-hover:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong)}.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.02em;padding:4px 10px;border-radius:var(--radius-pill);border:1px solid transparent;white-space:nowrap}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge-neutral{background:var(--surface-sunken);color:var(--text-secondary)}.badge-in_storage{background:var(--status-in-storage-bg);color:var(--status-in-storage)}.badge-reserved{background:var(--status-reserved-bg);color:var(--status-reserved)}.badge-checked_out{background:var(--status-checked-out-bg);color:var(--status-checked-out)}.badge-maintenance{background:var(--status-maintenance-bg);color:var(--status-maintenance)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-info{background:var(--info-bg);color:var(--info)}.field{display:flex;flex-direction:column;gap:6px}.label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text)}.hint{font-size:var(--fs-xs);color:var(--text-muted)}.input,.select,.textarea{width:100%;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:10px 12px;font-size:var(--fs-body);transition:border-color var(--transition),box-shadow var(--transition)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--se3-ink);box-shadow:0 0 0 3px #11131514}.textarea{resize:vertical;min-height:84px;font-family:var(--font-body)}.input::placeholder,.textarea::placeholder{color:var(--text-muted)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.table th{text-align:left;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-weight:var(--fw-regular);padding:12px 16px;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:14px 16px;border-bottom:1px solid var(--border);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr.clickable{cursor:pointer}.table tbody tr.clickable:hover{background:var(--surface-sunken)}.dl-cards{display:flex;flex-direction:column;gap:var(--space-3)}.dl-card{display:flex;flex-direction:column;gap:10px;width:100%;text-align:left;font:inherit;color:inherit}button.dl-card{cursor:pointer}.dl-card-title{font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-body)}.dl-card-rows{display:flex;flex-direction:column;gap:6px}.dl-card-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.dl-card-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);flex:none}.dl-card-val{font-size:var(--fs-sm);min-width:0}.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-3)}.pick-card{position:relative;display:flex;flex-direction:column;padding:0;overflow:hidden;text-align:left;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);font:inherit;color:inherit;transition:border-color var(--transition),box-shadow var(--transition)}.pick-card:hover{border-color:var(--border-strong)}.pick-card.selected{border-color:var(--se3-ink);box-shadow:0 0 0 2px var(--se3-ink)}.pick-thumb{aspect-ratio:4 / 3;width:100%;background:var(--surface-sunken);display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.pick-thumb img{width:100%;height:100%;object-fit:cover}.pick-body{display:flex;flex-direction:column;gap:6px;padding:10px 12px;min-width:0}.pick-name{font-weight:var(--fw-medium);font-size:var(--fs-sm);overflow-wrap:anywhere}.pick-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pick-check{position:absolute;top:8px;right:8px;z-index:1;width:22px;height:22px;border-radius:50%;background:var(--se3-ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;box-shadow:var(--shadow-sm)}.divider{height:1px;background:var(--border);border:none}.spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--se3-ink);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--surface-sunken) 25%,#e6e9eb 50%,var(--surface-sunken) 75%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{to{background-position:-200% 0}}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}@media (pointer: coarse){.input,.select,.textarea{font-size:var(--fs-input)}.btn{min-height:var(--tap-min)}.btn-sm{min-height:38px}.btn-icon,.icon-btn{min-width:var(--tap-min);min-height:var(--tap-min)}}
