:root{--orange:#ef7d12;--orange-2:#ff9f2f;--navy:#12385f;--ink:#172b42;--muted:#6c7b8d;--line:#dde6ef;--bg:#f3f6fa;--white:#fff;--green:#11865b;--shadow:0 12px 35px #12385f1f}*{box-sizing:border-box}html{color:var(--ink);background:#dfe7ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{background:radial-gradient(circle at 12% 0,#ef7d121f,#0000 30rem),#dfe7ef;min-height:100vh;margin:0}button,input,select,textarea{color:inherit;font:inherit}button{cursor:pointer}button,input,select,textarea{-webkit-tap-highlight-color:transparent}.icon{stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;flex:none}.app-frame{background:var(--bg);width:min(100%,520px);min-height:100svh;margin:0 auto;position:relative;overflow-x:hidden;box-shadow:0 0 45px #12385f2e}.login-screen{width:min(100%,520px);min-height:100svh;padding:max(42px, env(safe-area-inset-top)) 24px 34px;background:radial-gradient(circle at 50% 14%,#ff9f2f2e,#0000 17rem),linear-gradient(#fff 0%,#f6f8fb 72%,#edf2f7 100%);flex-direction:column;justify-content:center;align-items:center;margin:0 auto;display:flex;box-shadow:0 0 45px #12385f2e}.login-brand{text-align:center;flex-direction:column;align-items:center;margin-bottom:28px;display:flex}.login-brand img{border-radius:24px;width:92px;height:92px;margin-bottom:13px;box-shadow:0 14px 27px #ef7d1247}.login-brand strong{color:var(--navy);letter-spacing:-.7px;font-size:29px}.login-brand span{color:var(--muted);margin-top:5px;font-size:14px}.login-card{width:100%;box-shadow:var(--shadow);background:#fffffff5;border:1px solid #dde6efd9;border-radius:27px;padding:28px 22px 23px}.login-card h1{color:var(--navy);letter-spacing:-.45px;margin:0;font-size:25px}.login-card>p{color:var(--muted);margin:7px 0 24px;font-size:14px}.login-card label{color:var(--ink);gap:8px;margin-top:16px;font-size:13px;font-weight:750;display:grid}.login-input{border:1px solid var(--line);color:#6e7e90;background:#f9fbfd;border-radius:15px;align-items:center;gap:10px;height:56px;padding:0 15px;transition:border-color .2s,box-shadow .2s;display:flex}.login-input:focus-within{border-color:var(--orange);box-shadow:0 0 0 3px #ef7d121f}.login-input input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-size:16px}.password-toggle{color:var(--muted);background:0 0;border:0;place-items:center;padding:6px;display:grid}.login-submit,.full-primary,.logout-button{border:0;border-radius:15px;width:100%;font-weight:800}.login-submit{color:#fff;background:linear-gradient(135deg, var(--navy), #215986);height:57px;margin-top:23px;box-shadow:0 10px 20px #12385f33}.login-submit:active,.full-primary:active{transform:translateY(1px)}.demo-access{color:#825013;background:#fff5e8;border-radius:12px;flex-direction:column;gap:3px;margin-top:17px;padding:12px 13px;font-size:12px;display:flex}.secure-note{color:var(--muted);align-items:center;gap:8px;margin-top:24px;font-size:12px;display:flex}.topbar{z-index:20;padding:max(13px, env(safe-area-inset-top)) 14px 17px;color:#fff;background:linear-gradient(135deg, #e66e08 0%, var(--orange) 56%, var(--orange-2) 100%);position:sticky;top:0;box-shadow:0 7px 20px #b656072e}.topline{grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.white-circle{width:42px;height:42px;color:var(--navy);background:#fff;border:0;border-radius:50%;place-items:center;padding:0;display:grid;box-shadow:0 5px 13px #602e051f}.white-circle.active-profile{color:#fff;background:var(--navy)}.brand-copy{min-width:0;color:var(--navy);background:#fffffff2;border-radius:13px;flex-direction:column;align-items:flex-start;padding:6px 11px;display:flex}.brand-copy b{letter-spacing:-.1px;font-size:14px;line-height:1.05}.brand-copy small{color:#65768a;text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:3px;font-size:10px;overflow:hidden}.top-actions{gap:8px;display:flex}.top-actions .white-circle{width:40px;height:40px}.bottom-nav{z-index:18;width:min(100%,520px);height:calc(72px + env(safe-area-inset-bottom));padding:7px 34px max(7px, env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#fffffff7;grid-template-columns:1fr 1fr;margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #12385f14}.bottom-nav button{color:#8190a0;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:11px;font-weight:700;display:flex}.bottom-nav button.active{color:var(--orange)}.drawer{z-index:60;pointer-events:none;background:#091d3200;transition:background .25s;position:fixed;inset:0}.drawer.open{pointer-events:auto;background:#091d3287}.drawer-sheet{width:min(86vw,390px);height:100%;padding-bottom:max(20px, env(safe-area-inset-bottom));background:#fff;flex-direction:column;transition:transform .27s;display:flex;overflow-y:auto;transform:translate(-102%);box-shadow:18px 0 45px #03132238}.drawer.open .drawer-sheet{transform:translate(0)}.drawer-head{padding:max(21px, env(safe-area-inset-top)) 18px 19px;color:#fff;background:linear-gradient(145deg, #dc6808, var(--orange-2))}.drawer-head>button{width:37px;height:37px;color:var(--navy);background:#fff;border:0;border-radius:50%;place-items:center;margin-left:auto;padding:0;display:grid}.drawer-brand{align-items:center;gap:12px;margin-top:12px;display:flex}.drawer-brand img{border:3px solid #ffffffbf;border-radius:17px;width:57px;height:57px}.drawer-brand div{flex-direction:column;gap:2px;display:flex}.drawer-brand b{font-size:19px}.drawer-brand small{color:#ffffffd1}.menu-list{gap:3px;padding:13px 11px;display:grid}.menu-list button{min-height:52px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:13px;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:7px 10px;font-size:14px;font-weight:720;display:grid}.menu-list button:hover{background:#f5f8fb}.menu-list button>.icon:last-child{color:#9aa7b5}.menu-icon{width:36px;height:36px;color:var(--orange);background:#fff2e4;border-radius:11px;place-items:center;display:grid}.drawer-footer{color:var(--navy);background:#edf3f8;border-radius:15px;align-items:center;gap:10px;margin:auto 17px 0;padding:14px;font-size:12px;font-weight:700;display:flex}.home-content,.module-content{padding:22px 16px 102px}.hello{margin-bottom:18px}.hello small{color:var(--muted);font-size:13px;font-weight:700;display:block}.hello h1{color:var(--navy);letter-spacing:-.55px;margin:2px 0 0;font-size:27px}.hello span{color:#a2590d;background:#fff0dd;border-radius:999px;align-items:center;margin-top:9px;padding:6px 10px;font-size:11px;font-weight:800;display:inline-flex}.punch-card,.daily-card,.attention-card,.mobility-card,.data-card,.route-hero,.profile-card,.schedule-day{background:#fff;border:1px solid #dde6efe6;border-radius:19px;box-shadow:0 8px 23px #12385f12}.punch-card{grid-template-columns:45px minmax(0,1fr) auto;align-items:center;gap:12px;padding:17px;display:grid}.punch-logo{color:#fff;background:var(--navy);border-radius:14px;place-items:center;width:45px;height:45px;font-size:20px;font-weight:900;display:grid}.punch-card div:nth-child(2){flex-direction:column;min-width:0;display:flex}.punch-card small{color:var(--muted);font-size:11px}.punch-card strong{color:var(--navy);text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.punch-card button{color:#fff;background:var(--orange);border:0;border-radius:10px;padding:9px 11px;font-size:11px;font-weight:800}.section{margin-top:25px}.section-head{justify-content:space-between;align-items:center;gap:12px;min-height:30px;margin-bottom:10px;display:flex}.section-head h2,.subheading{color:var(--navy);letter-spacing:-.2px;margin:0;font-size:17px}.section-head span{color:var(--muted);font-size:11px;font-weight:650}.daily-card{overflow:hidden}.daily-card>header{color:#fff;background:linear-gradient(135deg, var(--navy), #205981);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.daily-card>header small{color:#ffffffbf}.daily-card>div{padding:16px}.daily-card h3{color:var(--ink);margin:0 0 5px;font-size:16px}.daily-card p{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.daily-chips{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.daily-chips span{color:#76501d;background:#fff2e2;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800}.app-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.app-button{border:1px solid var(--line);min-height:83px;color:var(--ink);text-align:left;background:#fff;border-radius:17px;grid-template-columns:43px 1fr;align-items:center;gap:11px;padding:13px;display:grid;box-shadow:0 6px 18px #12385f0e}.app-button>span:last-child{flex-direction:column;gap:3px;min-width:0;display:flex}.app-button strong{color:var(--navy);font-size:13px}.app-button small{color:var(--muted);font-size:9.5px}.app-logo{color:#fff;border-radius:13px;place-items:center;width:43px;height:43px;font-weight:900;display:grid}.app-logo.navy{background:var(--navy)}.app-logo.orange{background:var(--orange)}.external-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.external-grid button{min-width:0;color:var(--ink);background:#fff;border:0;border-radius:15px;flex-direction:column;align-items:center;gap:7px;padding:10px 4px;font-size:9px;font-weight:800;display:flex;box-shadow:0 6px 18px #12385f0f}.external-logo{color:#fff;border-radius:13px;place-items:center;width:40px;height:40px;font-size:17px;font-weight:900;display:grid}.external-logo.green{background:#21aa62}.external-logo.blue{background:#2b72bc}.external-logo.cyan{background:#18a8ca}.external-logo.slate{background:#536980}.notice-counter{background:#d9584d;border-radius:999px;justify-content:center;align-items:center;min-width:25px;height:25px;padding:0 8px;display:inline-flex;color:#fff!important;font-size:11px!important}.attention-card{color:#fff;text-align:left;border:0;grid-template-columns:50px 1fr auto;align-items:center;gap:13px;width:100%;min-height:106px;padding:17px;display:grid}.attention-card.stock{background:linear-gradient(135deg,#d96b11,#f49a37)}.attention-card.maintenance{background:linear-gradient(135deg,#17466f,#2f739d)}.attention-card.month{background:linear-gradient(135deg,#7b4a0d,#b27528)}.attention-card>div{flex-direction:column;gap:3px;display:flex}.attention-card strong{font-size:15px}.attention-card small{color:#fffc;line-height:1.3}.attention-icon{color:#fff;background:#ffffff2e;border-radius:15px;place-items:center;width:50px;height:50px;display:grid}.before-leave{margin-bottom:6px}.mobility-card{padding:16px}.mobility-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.mobility-head>div{align-items:center;gap:9px;display:flex}.mobility-head>div:first-child{color:var(--navy)}.mobility-head>div:last-child{flex-direction:column;align-items:flex-end;gap:0}.mobility-head strong{font-size:14px}.mobility-head small{color:var(--muted);font-size:10px}.route-search{border:1px solid var(--line);height:45px;color:var(--muted);background:#f7f9fb;border-radius:12px;align-items:center;gap:8px;margin-top:14px;padding:0 13px;display:flex}.route-search input{background:0 0;border:0;outline:0;width:100%;font-size:12px}.module-header{color:#fff;background:linear-gradient(135deg, #dd6808, var(--orange-2));grid-template-columns:42px 1fr 42px;align-items:center;gap:10px;padding:18px 16px 14px;display:grid}.module-header button{width:42px;height:42px;color:var(--navy);background:#fff;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.module-header div{text-align:center;min-width:0}.module-header h1{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:18px;overflow:hidden}.module-header small{color:#ffffffc7;font-size:10px}.module-content{padding-top:17px}.module-search{border:1px solid var(--line);height:50px;color:var(--muted);background:#fff;border-radius:14px;align-items:center;gap:9px;margin-bottom:13px;padding:0 14px;display:flex}.module-search input{background:0 0;border:0;outline:0;width:100%}.module-note{color:var(--muted);margin:0 0 14px;font-size:12px;line-height:1.45}.card-list,.agenda-list,.contact-list,.route-list{gap:10px;display:grid}.data-card{align-items:center;gap:12px;padding:15px;display:flex}.data-card>.icon{color:var(--orange)}.data-card>div{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.data-card small{color:var(--muted);font-size:10px}.data-card strong{color:var(--navy);font-size:14px}.data-card p{color:var(--muted);margin:0;font-size:11px;line-height:1.4}.data-title{flex:1;align-items:center;gap:11px;min-width:0;display:flex}.data-title>div{flex-direction:column;gap:3px;min-width:0;display:flex}.data-title strong,.data-title small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.data-title strong{color:var(--navy);font-size:14px}.data-title small{color:var(--muted);font-size:10px}.initials{color:#fff;background:var(--navy);border-radius:13px;place-items:center;width:42px;height:42px;font-size:12px;font-weight:900;display:grid}.data-actions{gap:6px;display:flex}.data-actions button,.protocol-row button,.profile-action{width:37px;height:37px;color:var(--navy);background:#edf3f8;border:0;border-radius:11px;place-items:center;padding:0;display:grid}.fault-form{border:1px solid var(--line);background:#fff;border-radius:19px;gap:13px;padding:17px;display:grid;box-shadow:0 8px 23px #12385f0f}.fault-form label{color:var(--ink);gap:7px;font-size:12px;font-weight:750;display:grid}.fault-form input,.fault-form select,.fault-form textarea{border:1px solid var(--line);background:#f8fafc;border-radius:12px;outline:0;width:100%;min-height:48px;padding:11px 12px}.fault-form textarea{resize:vertical;min-height:88px}.full-primary{color:#fff;background:var(--navy);min-height:50px;padding:12px}.fault-result{background:#f2fbf7;border-color:#11865b33;margin-top:12px}.result-badge{min-height:27px;color:var(--green);white-space:nowrap;background:#e7f7f0;border-radius:999px;align-items:center;padding:4px 9px;font-size:10px;font-weight:850;display:inline-flex}.result-badge.warn,.warn{color:#a7610c;background:#fff0dd}.kpi-grid,.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:13px;display:grid}.kpi-grid article,.profile-grid article{border:1px solid var(--line);background:#fff;border-radius:15px;flex-direction:column;justify-content:center;gap:4px;min-height:78px;padding:13px;display:flex}.kpi-grid span,.profile-grid span{color:var(--muted);font-size:10px}.kpi-grid strong,.profile-grid strong{color:var(--navy);font-size:16px}.stock-row,.station-row,.protocol-row,.generic-row,.agenda-list article{border:1px solid var(--line);background:#fff;border-radius:15px;align-items:center;gap:11px;min-height:70px;padding:13px;display:flex}.stock-row>div,.station-row>div,.protocol-row>div,.generic-row>div,.agenda-list article>div{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.stock-row strong,.station-row strong,.protocol-row strong,.generic-row strong,.agenda-list strong{color:var(--navy);font-size:13px}.stock-row small,.station-row small,.protocol-row small,.generic-row small,.agenda-list small{color:var(--muted);font-size:10px}.stock-row>span:first-child,.generic-row>span:first-child,.protocol-row>span:first-child{width:36px;height:36px;color:var(--orange);background:#fff0df;border-radius:11px;place-items:center;font-size:11px;font-weight:900;display:grid}.stock-row>b{color:var(--green);font-size:13px}.stock-row.low{background:#fffaf4;border-color:#f3c491}.stock-row.low>b{color:#c4680a}.route-hero{color:#fff;background:linear-gradient(135deg, var(--navy), #25638f);border:0;grid-template-columns:1fr auto;align-items:center;gap:12px;margin-bottom:12px;padding:17px;display:grid}.route-hero>div{flex-direction:column;gap:3px;display:flex}.route-hero small{color:#ffffffb8}.route-hero button{color:var(--navy);background:#fff;border:0;border-radius:10px;padding:9px 12px;font-size:11px;font-weight:850}.route-hero button.started{color:#fff;background:var(--green)}.route-list{padding-left:7px;position:relative}.route-list article{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:29px 1fr auto;align-items:center;gap:10px;min-height:61px;padding:11px 12px;display:grid;position:relative}.route-list article>span:first-child{width:29px;height:29px;color:var(--navy);background:#edf3f8;border-radius:50%;place-items:center;font-size:10px;font-weight:900;display:grid}.route-list article strong{color:var(--navy);font-size:12px}.route-list article small{color:var(--muted);font-size:9px}.route-list article.done{background:#f3fbf7;border-color:#bfe5d6}.route-list article.current{background:#fff8ef;border-color:#f1bd81}.agenda-list{margin-top:14px}.agenda-list.new article:first-child{border-color:#efb873;box-shadow:0 0 0 3px #ef7d1217}.agenda-list time{min-width:47px;color:var(--navy);flex-direction:column;align-items:center;font-size:13px;font-weight:850;display:flex}.agenda-list time small{font-size:9px}.subheading{margin:22px 0 10px;font-size:15px}.contact-list a{border:1px solid var(--line);min-height:57px;color:var(--navy);background:#fff;border-radius:14px;align-items:center;gap:10px;padding:11px 13px;font-size:12px;font-weight:720;text-decoration:none;display:flex}.station-row>.icon{color:var(--orange)}.station-row>span:last-child{color:var(--muted);font-size:10px;font-weight:750}.protocol-row>span:first-child{flex:none}.schedule-filters{scrollbar-width:none;gap:7px;margin-bottom:13px;display:flex;overflow-x:auto}.schedule-filters button{border:1px solid var(--line);color:var(--muted);white-space:nowrap;background:#fff;border-radius:999px;padding:8px 12px;font-size:10px;font-weight:800}.schedule-filters button.active{border-color:var(--navy);color:#fff;background:var(--navy)}.schedule-day{overflow:hidden}.schedule-day>header{color:#fff;background:var(--navy);align-items:center;gap:10px;padding:14px;display:flex}.schedule-day>header>span{width:38px;height:38px;color:var(--navy);background:#fff;border-radius:12px;place-items:center;font-weight:900;display:grid}.schedule-day>header div,.schedule-day>div article{flex-direction:column;display:flex}.schedule-day>header small{color:#ffffffbf}.schedule-day>div{padding:4px 14px;display:grid}.schedule-day>div article{border-bottom:1px solid var(--line);gap:2px;padding:12px 0;position:relative}.schedule-day>div article:last-child{border:0}.schedule-day>div article b{color:var(--orange);font-size:11px;position:absolute;top:12px;right:0}.schedule-day p{color:var(--muted);margin:0;font-size:10px}.generic-row>.icon{color:var(--orange)}.generic-row>button{width:34px;height:34px;color:var(--muted);background:#f0f4f8;border:0;border-radius:10px;place-items:center;padding:0;display:grid}.fleet-main{color:#fff;background:linear-gradient(135deg, var(--navy), #296b96);border:0;margin-bottom:12px}.fleet-main>.icon,.fleet-main strong,.fleet-main small,.fleet-main p{color:#fff}.fleet-main small,.fleet-main p{opacity:.73}.profile-card{text-align:center;padding:20px}.profile-avatar{color:#fff;background:linear-gradient(135deg, var(--orange), var(--orange-2));border:5px solid #fff0df;border-radius:50%;place-items:center;width:76px;height:76px;margin:0 auto 12px;font-size:23px;font-weight:900;display:grid;box-shadow:0 10px 22px #ef7d123d}.profile-card h1{color:var(--navy);margin:0;font-size:22px}.profile-card>p{color:var(--muted);margin:4px 0 18px;font-size:12px}.profile-grid{text-align:left}.profile-action{justify-content:flex-start;gap:10px;width:100%;height:52px;margin-top:4px;padding:0 13px;font-weight:800;display:flex}.logout-button{color:#b54d42;background:#fff5f3;border:1px solid #f1d0cc;min-height:50px;margin-top:14px}.toast{z-index:80;color:#fff;opacity:0;pointer-events:none;text-align:center;background:#12385ff5;border-radius:13px;width:min(100% - 40px,430px);padding:12px 15px;font-size:12px;font-weight:700;transition:opacity .22s,transform .22s;position:fixed;bottom:92px;right:50%;transform:translate(50%,15px);box-shadow:0 12px 35px #12385f40}.toast.show{opacity:1;transform:translate(50%)}@media (width>=521px){.app-frame,.login-screen{border-left:1px solid #12385f14;border-right:1px solid #12385f14}}@media (width<=370px){.home-content,.module-content{padding-left:12px;padding-right:12px}.topbar{padding-left:10px;padding-right:10px}.top-actions{gap:5px}.top-actions .white-circle{width:37px;height:37px}.app-button{gap:8px;padding:10px}.external-grid{gap:6px}}
