.bo-app{grid-template-columns:256px 1fr;min-height:100vh;display:grid}.bo-side{color:#fffcf5db;background:#0c0908;flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.bo-side-top{border-bottom:1px solid #fffcf51a;flex-shrink:0;padding:24px 22px 18px}.bo-side-logo{filter:brightness(0)saturate()invert(68%)sepia(52%)saturate(700%)hue-rotate(5deg)brightness()contrast();height:34px}.bo-role-tag{letter-spacing:.18em;text-transform:uppercase;color:var(--ink);background:var(--gold);white-space:nowrap;border-radius:999px;margin-top:14px;padding:4px 10px;font-size:9.5px;font-weight:700;display:inline-block}.bo-nav{flex-direction:column;flex:1;gap:2px;padding:14px 12px;display:flex;overflow-y:auto}.bo-nav-cat{letter-spacing:.18em;text-transform:uppercase;color:#fffcf566;padding:14px 14px 6px;font-size:9.5px;font-weight:700}.bo-nav-item{text-align:left;border-radius:var(--r-sm);color:#fffcf5b8;transition:all var(--dur-fast) var(--ease);cursor:pointer;width:100%;font-size:13px;font-weight:500;font-family:var(--font-sans);background:0 0;border:0;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;text-decoration:none;display:flex}.bo-nav-item:hover{color:#fffcf5;background:#fffcf514}.bo-nav-item.active{background:var(--wine);color:#fffcf5}.bo-nav-badge{color:#fffcf5;background:#fffcf529;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:10.5px;font-weight:700;display:inline-flex}.bo-nav-item.active .bo-nav-badge{background:#00000040}.bo-side-foot{border-top:1px solid #fffcf51a;flex-shrink:0;padding:16px}.bo-user{align-items:center;gap:11px;margin-bottom:12px;display:flex}.bo-avatar{background:var(--gold);width:38px;height:38px;color:var(--ink);font-family:var(--font-display);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:inline-flex}.bo-user-name{color:#fffcf5;font-size:13px;font-weight:600}.bo-user-mail{color:#fffcf580;font-size:11px}.bo-logout{text-align:center;border-radius:var(--r-sm);width:100%;color:var(--gold-soft);cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font-sans);background:0 0;border:1px solid #fffcf529;padding:10px}.bo-logout:hover{background:#fffcf514}.bo-main{background:var(--canvas);min-width:0}.bo-top{z-index:20;background:var(--paper-pure);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:20px 36px;display:flex;position:sticky;top:0}.bo-page-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:26px;font-weight:700}.bo-crumb{color:var(--ink-mute);letter-spacing:.06em;margin-top:2px;font-size:11px}.bo-view{padding:32px 36px 64px}.bo-kpis{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.bo-kpi{background:var(--paper-pure);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px}.bo-kpi .n{font-family:var(--font-display);font-size:38px;font-weight:700;line-height:1}.bo-kpi .l{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);margin-top:8px;font-size:10.5px;font-weight:700}.bo-kpi .d{color:var(--ink-soft);margin-top:6px;font-size:12px}.bo-panel{background:var(--paper-pure);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.bo-panel+.bo-panel{margin-top:22px}.bo-panel-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:18px 22px;display:flex}.bo-panel-head h3{font-family:var(--font-display);margin:0;font-size:19px;font-weight:600}.bo-tools{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.bo-tools input[type=search],.bo-tools input[type=text],.bo-tools select{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);outline:none;min-width:150px;padding:9px 12px;font-size:13px}.bo-tools input:focus,.bo-tools select:focus{border-color:var(--wine)}.bo-table-wrap{overflow-x:auto}.bo-table{border-collapse:collapse;width:100%;font-size:13px}.bo-table th{text-align:left;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);border-bottom:1px solid var(--line);background:var(--canvas);white-space:nowrap;padding:13px 22px;font-size:10px;font-weight:700}.bo-table td{border-bottom:1px solid var(--line);vertical-align:middle;color:var(--ink-soft);padding:14px 22px}.bo-table tr:last-child td{border-bottom:0}.bo-table tr:hover td{background:var(--canvas)}.t-strong{color:var(--ink);font-weight:600}.t-mono{font-family:ui-monospace,monospace;font-size:12px}.t-muted{color:var(--ink-mute)}.t-small{color:var(--ink-mute);font-size:11px}.bo-row-actions{justify-content:flex-end;gap:6px;display:flex}.bo-mini{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);cursor:pointer;font-size:11px;font-weight:600;font-family:var(--font-sans);white-space:nowrap;padding:6px 12px}.bo-mini:hover{border-color:var(--ink);color:var(--ink)}.bo-mini.danger:hover{border-color:var(--wine);color:var(--wine)}.bo-mini:disabled{opacity:.45;cursor:not-allowed}.bo-thumb{object-fit:cover;background:var(--canvas-deep);border-radius:var(--r-sm);width:38px;height:48px}.bo-thumb-cell{align-items:center;gap:12px;display:flex}.stt{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:4px 10px;font-size:10.5px;font-weight:700;display:inline-flex}.stt:before{content:"";background:currentColor;border-radius:999px;flex-shrink:0;width:6px;height:6px}.stt.ok{color:#1c7a4a;background:#1c7a4a1f}.stt.warn{color:var(--gold-deep);background:#b57b0024}.stt.info{color:#2563aa;background:#2563aa1f}.stt.muted{color:var(--ink-mute);background:var(--canvas-deep)}.stt.danger{color:var(--wine);background:#a019161a}.bo-empty{text-align:center;color:var(--ink-mute);padding:48px}.bo-empty h4{font-family:var(--font-display);color:var(--ink);margin:8px 0;font-size:20px}.bo-drawer-scrim{z-index:130;background:#02010173;position:fixed;inset:0}.bo-drawer{background:var(--paper-pure);width:min(480px,100vw);height:100vh;box-shadow:var(--shadow-pop);z-index:131;flex-direction:column;display:flex;position:fixed;top:0;right:0}.bo-drawer-head{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;padding:22px 26px;display:flex}.bo-drawer-head h3{font-family:var(--font-display);margin:0;font-size:22px;font-weight:600}.bo-drawer-close{width:36px;height:36px;color:var(--ink-mute);cursor:pointer;font-family:var(--font-sans);background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.bo-drawer-close:hover{background:var(--canvas-deep);color:var(--ink)}.bo-drawer-body{flex:1;padding:24px 26px;overflow-y:auto}.bo-drawer-foot{border-top:1px solid var(--line);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:10px;padding:18px 26px;display:flex}.bo-form{grid-template-columns:1fr 1fr;gap:16px;display:grid}.bo-form .full{grid-column:1/-1}.field{flex-direction:column;gap:6px;display:flex}.field label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);font-size:11px;font-weight:700}.field input,.field select,.field textarea{border:1.5px solid var(--line-strong);border-radius:var(--r-sm);background:var(--paper-pure);width:100%;color:var(--ink);font-size:14px;font-family:var(--font-sans);transition:border-color var(--dur-fast) var(--ease);outline:none;padding:10px 12px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold)}.field textarea{resize:vertical;min-height:90px}.req{color:var(--wine)}.checkbox{cursor:pointer;align-items:center;gap:10px;font-size:13px;display:flex}.checkbox input[type=checkbox]{flex-shrink:0;width:16px;height:16px}.bo-pwnote{color:var(--ink-soft);background:var(--canvas);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;font-size:12.5px;line-height:1.5}.bo-dd{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.7}.bo-dd dt{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin-top:16px;font-size:10px;font-weight:700}.bo-dd dd{color:var(--ink);margin:2px 0 0}.bo-dd dt:first-child{margin-top:0}.bo-count{background:var(--wine);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:24px;height:24px;padding:0 7px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.bo-promo-box{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--canvas);padding:14px 16px}.bo-promo-h{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:10px;font-size:10px;font-weight:700}.bo-export-grid{grid-template-columns:280px minmax(0,1fr);gap:0;display:grid}.bo-export-list{border-right:1px solid var(--line);max-height:560px;overflow-y:auto}.bo-trip-month{letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);background:var(--canvas);padding:12px 20px 6px;font-size:10px;font-weight:700;position:sticky;top:0}.bo-trip{text-align:left;border-bottom:1px solid var(--line);cursor:pointer;width:100%;font-family:var(--font-sans);background:0 0;border-top:0;border-left:0;border-right:0;flex-direction:column;gap:5px;padding:14px 20px;display:flex}.bo-trip:hover{background:var(--canvas)}.bo-trip.active{background:var(--ink)}.bo-trip.past{opacity:.55}.bt-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.bt-route{font-family:var(--font-display);color:var(--ink);font-size:15px;font-weight:600;line-height:1.2}.bo-trip.active .bt-route{color:#fffcf5}.bt-occ{color:var(--ink-mute);font-size:12px;font-weight:700}.bo-trip.active .bt-occ{color:#fffcf5b3}.bt-meta{color:var(--ink-mute);font-size:11.5px}.bo-trip.active .bt-meta{color:#fffcf599}.bt-pills{flex-wrap:wrap;gap:6px;display:flex}.bt-pill{letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:3px 8px;font-size:9.5px;font-weight:700}.bt-pill.gold{color:var(--gold-deep);background:#dc96002e}.bt-pill.wine{color:var(--wine);background:#a0191624}.bt-pill.warn,.bt-pill.muted{background:var(--canvas-deep);color:var(--ink-mute)}.bo-export-detail{min-width:0;overflow-y:auto}.bo-occbar{background:var(--canvas-deep);vertical-align:middle;border-radius:999px;width:90px;height:7px;margin-right:8px;display:inline-block;overflow:hidden}.bo-occbar span{background:var(--gold);height:100%;display:block}.bo-login{background:radial-gradient(120% 90% at 50% -10%,#1b1411 0%,#0b0807 55%,#060403 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.bo-login-card{background:var(--paper-pure);width:min(420px,100%);box-shadow:var(--shadow-pop);border-radius:var(--r-lg);overflow:hidden}.bo-login-brand{background:var(--ink);text-align:left;padding:36px 36px 30px}.bo-login-brand img{filter:brightness(0)saturate()invert(68%)sepia(52%)saturate(700%)hue-rotate(5deg)brightness()contrast();height:40px}.bo-login-h{color:var(--paper-pure);letter-spacing:-.02em;margin:8px 0 0;font-size:34px;font-weight:700}.bo-login-sub{color:#fffcf599;margin:8px 0 0;font-size:13px}.bo-login-form{flex-direction:column;gap:16px;padding:30px 36px 32px;display:flex}.bo-login-hint{background:var(--canvas);border-radius:var(--r-sm);color:var(--ink-mute);flex-direction:column;gap:4px;padding:14px 16px;font-size:11.5px;line-height:1.5;display:flex}.bo-login-hint strong{color:var(--ink);letter-spacing:.16em;text-transform:uppercase;font-size:10px}.bo-login-hint code{color:var(--wine);font-family:ui-monospace,monospace}.bo-back-site{color:var(--ink-mute);text-align:center;font-size:12px}.bo-err{color:var(--wine-deep);border-radius:var(--r-sm);background:#a0191614;border:1px solid #a019164d;padding:10px 14px;font-size:12.5px}.bo-tabs{gap:4px;display:flex}.bo-tab{border-radius:var(--r-sm);color:var(--ink-mute);cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font-sans);background:0 0;border:1px solid #0000;padding:8px 16px}.bo-tab.active{background:var(--ink);color:var(--paper-pure)}.bo-tab:not(.active):hover{background:var(--canvas-deep);color:var(--ink)}.bo-toast-container{z-index:200;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.bo-toast{background:var(--ink);color:var(--paper-pure);border-radius:var(--r-pill);box-shadow:var(--shadow-lg);animation:boSlideUp .3s var(--ease);align-items:center;gap:10px;padding:12px 20px;font-size:14px;font-weight:500;display:flex}.bo-toast.success{background:#166534}.bo-toast.error{background:var(--wine-deep)}@keyframes boSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.bo-splitbar{background:var(--canvas-deep);border-radius:999px;height:16px;display:flex;overflow:hidden}.bo-splitbar .prod{background:var(--wine)}.bo-splitbar .tick{background:var(--gold)}.bo-splitleg{color:var(--ink-soft);flex-wrap:wrap;gap:18px;margin-top:14px;font-size:13px;display:flex}.bo-splitleg span{align-items:center;gap:8px;display:inline-flex}.bo-splitleg .dot{border-radius:999px;width:10px;height:10px}.bo-splitleg .dot.prod{background:var(--wine)}.bo-splitleg .dot.tick{background:var(--gold)}@media (max-width:980px){.bo-app{grid-template-columns:1fr}.bo-side{height:auto;position:static}.bo-kpis{grid-template-columns:1fr 1fr}.bo-export-grid{grid-template-columns:1fr}.bo-export-list{border-right:0;border-bottom:1px solid var(--line);max-height:240px}}.bt-closed{color:var(--ink-mute);font-size:12px;font-style:italic}.bo-aplabel{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:10px;font-size:11px;font-weight:700}.bo-apcount{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.bo-apcount b{color:var(--ink);font-size:14px;display:block}.bo-apcount span.sub{color:var(--ink-mute);font-size:12px;display:block}.bo-apstep{align-items:center;gap:12px;display:inline-flex}.bo-apstep button{border:1.5px solid var(--line-strong);background:var(--paper-pure);width:30px;height:30px;color:var(--ink);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.bo-apstep button:disabled{opacity:.4;cursor:not-allowed}.bo-apstep span{text-align:center;font-variant-numeric:tabular-nums;min-width:18px}.bo-apname{align-items:center;gap:10px;margin-bottom:8px;display:flex}.bo-apname .n{background:var(--canvas-deep);width:22px;height:22px;color:var(--ink-mute);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.bo-apname input{border:1.5px solid var(--line-strong);border-radius:var(--r-sm);background:var(--paper-pure);color:var(--ink);font-size:14px;font-family:var(--font-sans);outline:none;flex:1;padding:8px 12px}.bo-apname input:focus{border-color:var(--gold)}.bo-aptype{color:var(--ink-mute);white-space:nowrap;font-size:12px}.bo-aptotal{border-top:1px solid var(--line);color:var(--ink-mute);justify-content:space-between;align-items:center;margin-top:18px;padding-top:14px;font-size:13px;display:flex}.bo-aptotal strong{color:var(--ink);font-size:16px}.bo-imgs{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;margin-bottom:10px;display:grid}.bo-img{aspect-ratio:1;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;position:relative;overflow:hidden}.bo-img img{object-fit:cover;width:100%;height:100%;display:block}.bo-img.featured{border-color:var(--gold-deep,#9a7b2e);box-shadow:0 0 0 2px var(--gold-deep,#9a7b2e)}.bo-img-star{background:var(--gold-deep,#9a7b2e);color:#fff;border-radius:999px;padding:1px 6px;font-size:10px;position:absolute;bottom:4px;left:4px}.bo-img-del{color:#fff;cursor:pointer;background:#0000008c;border:0;border-radius:999px;width:20px;height:20px;font-size:14px;line-height:1;position:absolute;top:4px;right:4px}.bo-img-empty{border:1px dashed var(--line);text-align:center;color:var(--ink-mute);border-radius:8px;grid-column:1/-1;padding:14px;font-size:12px}.bo-upload{cursor:pointer;align-items:center;display:inline-flex}.bo-upload span{border:1px dashed var(--line);color:var(--ink-mute);background:#fff;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;display:inline-flex}.bo-upload:hover span{border-color:var(--gold-deep,#9a7b2e);color:var(--ink,#2a2118)}.bo-variant-rows{flex-direction:column;gap:8px;display:flex}.bo-variant-row{grid-template-columns:1fr 120px auto;align-items:center;gap:8px;display:grid}
