/* FASTLINE — ambiente gestionale */
:root{--red:#d71920;--red-dark:#b61018;--red-soft:#fff0f1;--ink:#262a32;--muted:#7b808a;--bg:#f5f6f8;--line:#e6e8ed;--shadow:0 4px 18px #20263005;accent-color:#d71920}
body{font-family:"Segoe UI Variable","Segoe UI",system-ui,sans-serif;font-size:14px;color:var(--ink)}
.app{grid-template-columns:246px minmax(0,1fr)}
.app .side{height:100dvh;padding:25px 16px 18px;background:#fff;border-right:1px solid var(--line);overflow:hidden;box-shadow:2px 0 18px #242a3402}
.app .brand{padding:2px 10px 22px;margin-bottom:16px;flex:none;border-color:#eef0f3}.app .brand img{width:177px}.app .brand small{font-size:8px;letter-spacing:.16em;color:#9297a0;margin-top:12px}
.app .side nav{gap:3px;min-height:0;overflow-y:auto;overflow-x:hidden;flex:1 1 auto;scrollbar-width:thin;scrollbar-color:#e0e3e8 transparent;padding-right:3px}
.app .side nav a{display:flex;align-items:center;gap:11px;color:#666d78;padding:10px 12px;border-radius:10px;font-size:12px;font-weight:600;min-height:39px;line-height:1.35;transition:background-color .15s,color .15s;white-space:normal}
.app .side nav a span{min-width:0}.nav-icon{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;color:#979da7}
.app .side nav a:hover{background:#f8f9fb;color:var(--red)}.app .side nav a.active{color:var(--red-dark);background:#fff0f1;box-shadow:inset 0 0 0 1px #f7dce0;font-weight:700}.app .side nav a.active .nav-icon{color:var(--red)}
.app .side nav a:before{top:11px;bottom:11px;left:0;width:3px}.app .side nav a.active:before{background:var(--red)}
.app .nav-parent{display:block;font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#9a9fa8;font-weight:700;padding:17px 12px 7px;background:transparent;border-radius:0}.app .nav-group.open>.nav-parent{color:#a7474c;background:transparent}
.app .nav-submenu{padding:0;gap:2px}.app .nav-submenu a{padding:9px 12px!important;font-size:12px;border:0;border-radius:10px!important}
.app .side-foot{flex:none;margin-top:16px;padding:16px 12px 0;border-color:#eceef2;font-size:11px;color:#7c828c;font-weight:650;line-height:1.6}.app .side-foot span{font-size:10px;color:#a0a5ae}
.app .main{min-width:0;padding:30px 34px 45px;background:radial-gradient(ellipse at 100% 0,#fff0f180,transparent 520px),var(--bg)}
.app .main>.top{min-height:83px;margin:-30px -34px 28px;padding:16px 34px;gap:18px;border-bottom:1px solid var(--line);background:#ffffffed;align-items:center}
.app .top h1{font-size:23px;font-weight:650;letter-spacing:-.035em;margin:2px 0 0;line-height:1.3}.app .top .eyebrow{font-size:8px;letter-spacing:.14em;color:#a1a5ad;font-weight:650}
.app .user-chip{border:0;background:transparent;padding:0;box-shadow:none;gap:17px;border-radius:0}.app .user-chip .profile-link{font-size:12px;font-weight:600;color:#5b626d!important}.app .user-chip>a:last-child{border:1px solid #e2e5ea;background:#fff;color:#6b727d;border-radius:9px;padding:7px 12px;font-weight:600;font-size:11px}
.app .card{border-color:var(--line);border-radius:16px;box-shadow:var(--shadow);padding:23px}.app h2,.app h3{letter-spacing:-.025em}.app .card h2{font-size:20px;font-weight:650;margin-top:0}
.app .grid{gap:17px}.app .stat{min-height:137px}.app .stat b{font-size:33px;font-weight:700;margin-top:13px}.app .stat-icon{width:37px;height:37px;border-radius:12px;font-size:17px;background:#fff0f1}.app .stat .muted{font-size:11px;font-weight:600}
.app .btn{font:600 12px/1.5 "Segoe UI",system-ui,sans-serif;border-radius:10px;padding:10px 15px;box-shadow:0 3px 8px #d7192010;transition:background-color .15s}.app .btn:hover{transform:none}.app .btn.secondary{background:#fff;border:1px solid #e0e3e9;color:#626975;box-shadow:none}.app .btn.compact{padding:6px 10px;font-size:11px}
.app input:not([type=checkbox]):not([type=radio]),.app select,.app textarea{border-color:#dfe3e9;background:#fbfcfd;border-radius:10px;font-family:inherit;font-size:13px}.app input:focus,.app select:focus,.app textarea:focus{background:#fff;border-color:#e1797f;box-shadow:0 0 0 3px #d719200c}.app .field label{font-size:11px;letter-spacing:.01em;color:#777e89;font-weight:600;margin-bottom:7px}
.app table{font-size:12px}.app th{font-size:9px;letter-spacing:.08em;color:#8b919b;background:#f8f9fb;font-weight:650;padding:12px}.app td{padding:13px 12px;border-color:#edf0f3}.app tbody tr:hover{background:#fdfafb}.app .badge{font-size:10px;font-weight:650;padding:5px 9px}.app .table-wrap{padding:0;overflow:auto}.app .table-wrap>h2,.app .table-wrap>p,.app .table-wrap>form{margin:20px 23px}
.app .party-block{background:#fff;border-color:#e5e8ed;border-radius:14px;padding:22px}.app .party-block legend{font-size:13px;font-weight:650;color:#454c57}.app .party-block>p{font-size:12px;color:#8a909a;margin:0 0 20px}.app .shipment-choice-head h2{font-size:27px}.app .service-choice>a{box-shadow:var(--shadow);border-radius:17px;border-color:var(--line)}
.page-dashboard .welcome{min-height:220px;border-radius:18px;padding:31px 32px;margin-bottom:22px;box-shadow:0 8px 22px #2529320a;border:1px solid #252a30}.page-dashboard .welcome h2{font-size:29px;font-weight:650;letter-spacing:-.04em;margin:9px 0 10px}.page-dashboard .welcome p{font-size:13px;line-height:1.7;max-width:420px}.page-dashboard .welcome .eyebrow{font-size:9px;letter-spacing:.16em;color:#ffb6ba}
.app .trip-hero{border-radius:17px;box-shadow:none}.app .trip-hero h2{font-size:27px;font-weight:650}.app .report-month-inline input{background:#fff;color:var(--ink)}
.app a:focus-visible,.app button:focus-visible{outline:3px solid #ed9ca1;outline-offset:3px}
.login-shell{background:#f5f6f8}.login-visual{background:radial-gradient(ellipse at 15% 5%,#ffe6e8,transparent 65%),#f6f7f9;color:var(--ink);border-right:1px solid #e7e9ee}.login-visual:before,.road-lines{display:none}.login-visual img{background:transparent;box-shadow:none;border-radius:0;padding:0;width:min(360px,85%)}.login-kicker{color:var(--red);font-size:9px;letter-spacing:.17em}.login-visual h1{font-size:clamp(38px,4.5vw,60px);font-weight:650;line-height:1.06}.login-visual p{color:#8a909a;font-size:14px;line-height:1.8}.login-panel{background:#f7f8fa;padding:40px}.login-card{position:relative;background:#fff;border:1px solid #e4e7ec;border-radius:22px;padding:35px;box-shadow:0 16px 55px #25293207;overflow:hidden;width:min(100%,450px)}.login-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#d71920 80%,#272b32 80%)}.login-card h2{font-size:27px;font-weight:650}.login-card .eyebrow{font-size:9px}.login-card .muted{font-size:12px}.login-card input{background:#f9fafc;border-color:#e1e5eb;font-size:14px;min-height:46px}.login-card .field label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#858b95}.login-card form{gap:18px}.login-card .btn{border-radius:10px;box-shadow:none;font-family:inherit;font-size:12px;letter-spacing:.05em}
.demo-ribbon{display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:700;color:#a7474c;background:#fff0f1;border:1px solid #f3dade;padding:6px 10px;border-radius:8px}.demo-page[hidden]{display:none!important}.demo-notice{font-size:12px;color:#8b7375;border:1px solid #ecdfe0;background:#fffbfb;border-radius:12px;padding:13px 16px;margin-bottom:20px}.demo-app .top .user-chip a{white-space:nowrap}.demo-app .actions .muted{font-size:11px}
@media(min-width:1600px){.app{grid-template-columns:260px minmax(0,1fr)}.app .main{padding-left:44px;padding-right:44px}.app .main>.top{margin-left:-44px;margin-right:-44px;padding-left:44px;padding-right:44px}}
@media(min-width:721px) and (max-width:1100px){.app{grid-template-columns:218px minmax(0,1fr)}.app .side{padding-left:12px;padding-right:12px}.app .brand img{width:160px}.app .main{padding-left:24px;padding-right:24px}.app .main>.top{margin-left:-24px;margin-right:-24px;padding-left:24px;padding-right:24px}}
@media(max-width:960px){.login-visual{min-height:270px;padding:35px;border-right:0;border-bottom:1px solid #e7e9ee}.login-visual img{width:230px;margin-bottom:24px}.login-visual h1{font-size:38px}.login-panel{padding:35px 22px}}
@media(max-width:720px){
 .app{display:block}.app .side{position:sticky;top:0;height:66px;padding:16px 18px;overflow:visible;border-bottom:1px solid #e5e8ed;box-shadow:none;background:#fffffff5}.app .brand{padding:0;border:0;margin:0}.app .brand img{width:135px}.app .brand small{display:none}.app .side nav,.app .side-foot{display:none!important}
 .menu-toggle{position:fixed;top:16px;right:14px;margin:0;z-index:95;padding:7px 11px;background:#fff;color:#8f343a;border:1px solid #ead5d8;font-size:11px;border-radius:9px}.menu-open .app .side nav{display:flex!important;position:fixed;inset:77px 12px 88px;background:#fff;border:1px solid #e3e6eb;border-radius:16px;padding:13px;box-shadow:0 18px 55px #22263020;max-height:none;overflow-y:auto;z-index:90}.menu-open .app .nav-submenu{display:flex}.menu-open .app .nav-parent{font-size:9px;padding-top:14px}.menu-open .app .side nav a{min-height:42px;font-size:13px}
 .app .main{padding:20px 16px 30px}.app .main>.top{position:static;min-height:47px;margin:0 0 20px;padding:0;border:0;background:transparent;gap:10px;justify-content:space-between}.app .main>.top>div:first-child{display:block}.app .top h1{font-size:22px;line-height:1.3}.app .top .eyebrow{font-size:7px}.app .user-chip .profile-link{display:none}.app .user-chip>a:last-child{padding:6px 10px;font-size:10px}
 .app .card{padding:18px;border-radius:14px}.app .table-wrap{padding:0}.app .table-wrap>h2,.app .table-wrap>p,.app .table-wrap>form{margin:18px}.app .grid{gap:12px}.app .stat{min-height:119px}.app .stat b{font-size:31px}.app .party-block{padding:17px}.app .form-grid{gap:15px}.app input:not([type=checkbox]):not([type=radio]),.app select,.app textarea{font-size:16px}.app .btn{font-size:12px;padding:10px 13px}
 .page-dashboard .welcome{min-height:210px;padding:27px 23px}.page-dashboard .welcome h2{font-size:27px}.page-dashboard .welcome p{font-size:12px}.app .mobile-nav{box-shadow:0 -3px 20px #242a3406;border-color:#e8eaf0}.app .mobile-nav a{font-size:9px;color:#7f858e}.app .mobile-nav span{font-size:18px}.app .side-foot{display:none}.page-trip_reports .app .main{padding-top:16px;padding-bottom:120px}.page-trip_reports .app .top{position:static;margin-bottom:15px}
 .login-visual{min-height:235px;padding:30px 25px}.login-visual h1{font-size:33px;margin:10px 0}.login-visual img{width:200px;margin-bottom:22px}.login-visual p{font-size:12px;margin-bottom:0}.login-panel{padding:25px 18px 38px}.login-card{padding:29px 24px;border-radius:19px}.login-card input{font-size:16px}.login-card h2{font-size:25px}.demo-ribbon{font-size:8px;padding:5px 7px}.demo-app .top .user-chip{gap:8px}.demo-app .top .user-chip>a:last-child{font-size:9px;padding:6px}
}
@media print{.app .main{background:#fff}.app .side,.app .top,.menu-toggle,.demo-ribbon{display:none!important}.app .card{box-shadow:none}}
@media(prefers-reduced-motion:reduce){.app .btn,.app .side nav a{transition:none}}
.fastline-is-updating{padding-top:58px!important}.fastline-update-banner{position:fixed;inset:0 0 auto;z-index:20000;min-height:58px;padding:12px 24px;background:#fff4d7;color:#775414;border-bottom:1px solid #edd59b;display:flex;align-items:center;justify-content:center;gap:18px;font:12px/1.45 system-ui,sans-serif}.fastline-update-banner strong{font-size:11px;letter-spacing:.035em}.fastline-update-banner button{background:#fff;border:1px solid #dcc085;border-radius:7px;padding:6px 10px;color:#775414;font:600 11px system-ui;cursor:pointer}.fastline-is-updating .app .side{top:58px;height:calc(100dvh - 58px)}.fastline-is-updating .menu-toggle{top:74px}@media(max-width:720px){.fastline-is-updating{padding-top:76px!important}.fastline-update-banner{min-height:76px;display:block;text-align:center;padding:10px 15px}.fastline-update-banner strong,.fastline-update-banner span{display:block}.fastline-update-banner span{font-size:10px;margin-top:4px}.fastline-update-banner button{margin-top:6px}.fastline-is-updating .app .side{top:76px;height:auto}.fastline-is-updating .menu-toggle{top:92px}}@media print{.fastline-update-banner{display:none!important}.fastline-is-updating{padding-top:0!important}}
