:root{--ppo-bg:#f4f7f6;--ppo-surface:#fff;--ppo-surface-2:#f7f9f8;--ppo-text:#182321;--ppo-muted:#667470;--ppo-border:#dde5e2;--ppo-primary:#1f5f52;--ppo-primary-soft:#e8f2ef;--ppo-primary-dark:#16483e;--ppo-danger:#ad3e3e;--ppo-danger-soft:#fbecec;--ppo-warning:#986713;--ppo-warning-soft:#fff6df;--ppo-success:#287a4e;--ppo-success-soft:#eaf6ef;--ppo-shadow:0 8px 26px rgba(30,54,49,.06);--ppo-radius:17px}
*{box-sizing:border-box}html{background:var(--ppo-bg);scroll-behavior:smooth}body.ppo-body{margin:0;min-width:320px;background:var(--ppo-bg);color:var(--ppo-text);font-family:Tahoma,"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:0 0 0 3px rgba(31,95,82,.16);border-color:var(--ppo-primary)!important}.ppo-app{min-height:100vh}.ppo-topbar{position:fixed;z-index:80;top:0;right:0;left:0;height:68px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--ppo-border)}.ppo-brand{display:flex;align-items:center;gap:10px;min-width:0}.ppo-brand-mark{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,var(--ppo-primary),var(--ppo-primary-dark));color:#fff;font-size:20px;font-weight:900;box-shadow:0 7px 18px rgba(31,95,82,.18);flex:none}.ppo-brand>span:last-child{display:grid;line-height:1.25}.ppo-brand strong{font-size:14px}.ppo-brand small{font-size:10px;color:var(--ppo-muted);margin-top:3px}.ppo-top-actions{display:flex;align-items:center;gap:8px}.ppo-user-chip{max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:7px 10px;border:1px solid var(--ppo-border);border-radius:999px;background:var(--ppo-surface-2);font-size:11px;font-weight:800}.ppo-icon-button{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--ppo-border);border-radius:12px;background:#fff;font-size:18px}.ppo-shell{display:block;padding-top:68px}.ppo-sidebar{position:fixed;z-index:50;top:68px;right:0;bottom:0;width:230px;padding:16px 12px;overflow-y:auto;background:#fff;border-left:1px solid var(--ppo-border)}.ppo-sidebar-label{padding:0 10px 9px;color:var(--ppo-muted);font-size:10px;font-weight:800}.ppo-sidebar nav{display:grid;gap:3px}.ppo-sidebar nav a{position:relative;min-height:42px;padding:9px 10px;display:flex;align-items:center;gap:10px;border-radius:12px;color:#46534f;font-size:12px}.ppo-sidebar nav a:hover{background:var(--ppo-surface-2)}.ppo-sidebar nav a.is-active{background:var(--ppo-primary-soft);color:var(--ppo-primary);font-weight:900}.ppo-sidebar nav a em,.ppo-bottom-nav a em{margin-inline-start:auto;min-width:20px;height:20px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:var(--ppo-danger);color:#fff;font-size:9px;font-style:normal}.ppo-nav-icon{width:20px;height:20px;display:grid;place-items:center;flex:none}.ppo-nav-icon svg{width:19px;height:19px}.ppo-sidebar footer{margin-top:18px;padding:12px 10px;border-top:1px solid var(--ppo-border);color:var(--ppo-muted);font-size:9px}.ppo-main{margin-right:230px;padding:22px 24px 44px;min-height:calc(100vh - 68px)}.ppo-page{max-width:1380px;margin:0 auto;display:grid;gap:14px}.ppo-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:2px}.ppo-page-head>div{min-width:0}.ppo-page-head small,.ppo-driver-hero small{display:block;color:var(--ppo-primary);font-size:10px;font-weight:900}.ppo-page-head h1,.ppo-driver-hero h1{margin:2px 0 0;font-size:24px;line-height:1.35;letter-spacing:-.3px}.ppo-page-head p,.ppo-driver-hero p{margin:4px 0 0;color:var(--ppo-muted);font-size:11.5px}.ppo-panel{background:var(--ppo-surface);border:1px solid var(--ppo-border);border-radius:var(--ppo-radius);padding:16px;box-shadow:var(--ppo-shadow);min-width:0}.ppo-panel h2{margin:0;font-size:15px}.ppo-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.ppo-panel-head p{margin:3px 0 0;color:var(--ppo-muted);font-size:11px}.ppo-panel-head>a{font-size:11px;color:var(--ppo-primary);font-weight:800}.ppo-button{min-height:42px;padding:9px 14px;border:1px solid transparent;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-weight:850;font-size:11.5px;line-height:1.2;transition:transform .12s,background .12s,border-color .12s}.ppo-button:active{transform:scale(.985)}.ppo-button-primary{background:var(--ppo-primary);border-color:var(--ppo-primary);color:#fff}.ppo-button-primary:hover{background:var(--ppo-primary-dark)}.ppo-button-soft{background:var(--ppo-primary-soft);border-color:#cfe0db;color:var(--ppo-primary)}.ppo-button-ghost{background:#fff;border-color:var(--ppo-border);color:var(--ppo-text)}.ppo-button-danger{background:var(--ppo-danger);border-color:var(--ppo-danger);color:#fff}.ppo-button-danger-soft{background:var(--ppo-danger-soft);border-color:#f0caca;color:var(--ppo-danger)}.ppo-button-dark{background:#28322f;border-color:#28322f;color:#fff}.ppo-button-small{min-height:34px;padding:7px 10px;font-size:10.5px}.ppo-button-block{width:100%;min-height:48px;font-size:13px}.ppo-grid{display:grid;gap:14px}.ppo-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ppo-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.ppo-stat{min-height:108px;padding:14px;border:1px solid var(--ppo-border);border-radius:15px;background:var(--ppo-surface);display:grid;align-content:center;gap:3px;box-shadow:0 5px 18px rgba(30,54,49,.035)}a.ppo-stat:hover{border-color:#c4d6d1}.ppo-stat small{font-size:10.5px;color:var(--ppo-muted);font-weight:800}.ppo-stat strong{font-size:26px;line-height:1.2;color:var(--ppo-text)}.ppo-stat span{font-size:9.5px;color:var(--ppo-primary);font-weight:800}.ppo-stat.is-warning{border-color:#ead6a9;background:var(--ppo-warning-soft)}.ppo-search{padding:12px 14px}.ppo-search form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.ppo-search label{display:grid;gap:4px}.ppo-search label span{font-size:10px;color:var(--ppo-muted);font-weight:800}.ppo-search input{min-height:42px}.ppo-search-results{display:grid;gap:5px;margin-top:10px;padding-top:10px;border-top:1px solid var(--ppo-border)}.ppo-search-results a{display:grid;grid-template-columns:minmax(120px,1fr) minmax(180px,1.6fr) auto;gap:10px;align-items:center;padding:9px 10px;border-radius:10px;background:var(--ppo-surface-2)}.ppo-search-results a:hover{background:var(--ppo-primary-soft)}.ppo-search-results strong{font-size:11.5px}.ppo-search-results span,.ppo-search-results small{font-size:10px;color:var(--ppo-muted)}.ppo-compact-list{display:grid;gap:5px}.ppo-compact-list>a,.ppo-compact-list>div{min-height:58px;display:grid;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 9px;border:1px solid var(--ppo-border);border-radius:12px;background:var(--ppo-surface-2)}.ppo-compact-list time{font-size:15px;font-weight:900;color:var(--ppo-primary);text-align:center}.ppo-compact-list time small{display:block;font-size:9px;color:var(--ppo-muted)}.ppo-compact-list span{display:grid;min-width:0}.ppo-compact-list span strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ppo-compact-list span small{font-size:9.5px;color:var(--ppo-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ppo-attention{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.ppo-attention a{padding:10px;border-radius:12px;background:var(--ppo-surface-2);display:grid;gap:2px}.ppo-attention span{font-size:9.5px;color:var(--ppo-muted)}.ppo-attention strong{font-size:19px}.ppo-money-strip{margin-top:10px;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding-top:10px;border-top:1px solid var(--ppo-border)}.ppo-money-strip>div{display:grid;gap:2px;padding:9px 10px;border-radius:12px;background:var(--ppo-surface-2)}.ppo-money-strip small{font-size:9.5px;color:var(--ppo-muted)}.ppo-money-strip strong{font-size:13px}.ppo-money-strip.is-large{margin:0;padding:0;border:0}.ppo-money-strip.is-large strong{font-size:20px}.ppo-badge{display:inline-flex;align-items:center;justify-content:center;min-height:25px;padding:4px 8px;border-radius:999px;background:#eef2f1;color:#53605d;font-size:9.5px;font-weight:900;white-space:nowrap}.ppo-badge.is-urgent{background:var(--ppo-danger-soft);color:var(--ppo-danger)}.ppo-badge.is-high{background:var(--ppo-warning-soft);color:var(--ppo-warning)}.ppo-badge.is-normal{background:var(--ppo-primary-soft);color:var(--ppo-primary)}.ppo-badge.is-low{background:#eff2f3;color:#667}.ppo-badge.is-success{background:var(--ppo-success-soft);color:var(--ppo-success)}.ppo-badge.is-expense{background:var(--ppo-danger-soft);color:var(--ppo-danger)}.ppo-badge.is-status{background:#eff3f2;color:#53605d}.ppo-datebar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px}.ppo-datebar form{display:flex;align-items:center;gap:6px}.ppo-segment{display:flex;padding:3px;border-radius:11px;background:var(--ppo-surface-2);border:1px solid var(--ppo-border)}.ppo-segment a{min-width:70px;padding:7px 12px;border-radius:8px;text-align:center;font-size:11px;font-weight:850}.ppo-segment a.is-active{background:#fff;color:var(--ppo-primary);box-shadow:0 2px 9px rgba(0,0,0,.05)}.ppo-planner-list{display:grid;gap:9px}.ppo-plan-card{display:grid;grid-template-columns:92px minmax(0,1fr) 150px;gap:14px;align-items:center;padding:13px 14px;border:1px solid var(--ppo-border);border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(30,54,49,.035)}.ppo-plan-time{padding:7px 0;text-align:center;border-left:1px solid var(--ppo-border);display:grid;gap:1px}.ppo-plan-time strong{font-size:24px;line-height:1.1}.ppo-plan-time small{font-size:9px;color:var(--ppo-muted)}.ppo-card-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ppo-card-title h2{margin:0;font-size:14px}.ppo-plan-meta{margin-top:7px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.ppo-plan-meta span{display:grid;min-width:0;font-size:10.5px}.ppo-plan-meta b{font-size:8.5px;color:var(--ppo-muted);font-weight:700}.ppo-plan-action{display:grid;gap:6px;justify-items:stretch}.ppo-form-card>h2{margin-bottom:12px}.ppo-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 12px}.ppo-form-grid label,.ppo-form-stack label,.ppo-filterbar label{display:grid;align-content:start;gap:5px;font-size:10.5px;font-weight:850;color:#3b4744}.ppo-form-grid input,.ppo-form-grid select,.ppo-form-grid textarea,.ppo-form-stack input,.ppo-form-stack select,.ppo-form-stack textarea,.ppo-filterbar input,.ppo-filterbar select,.ppo-search input,.ppo-datebar input{width:100%;min-width:0;min-height:43px;padding:8px 10px;border:1px solid #ccd7d3;border-radius:10px;background:#fff;color:var(--ppo-text);font-size:12px}.ppo-form-grid textarea,.ppo-form-stack textarea{resize:vertical;min-height:68px}.ppo-form-grid input:disabled,.ppo-form-grid select:disabled{background:#eef1f0;color:#7a8582}.ppo-span-2{grid-column:1/-1}.ppo-form-section{margin-top:3px;padding:11px 12px;border-radius:12px;background:var(--ppo-primary-soft);display:grid;gap:1px}.ppo-form-section strong{font-size:11.5px;color:var(--ppo-primary)}.ppo-form-section small{font-size:9.5px;color:var(--ppo-muted)}.ppo-form-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:3px}.ppo-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center!important;gap:8px!important;padding:9px 10px;border:1px solid #ead7a8;border-radius:10px;background:var(--ppo-warning-soft)}.ppo-check input{width:16px!important;height:16px!important;min-height:0!important}.ppo-help{margin:-4px 0 12px;padding:9px 10px;border-radius:10px;background:var(--ppo-primary-soft);color:var(--ppo-muted);font-size:10.5px}.ppo-filterbar{display:flex;align-items:end;gap:7px;flex-wrap:wrap}.ppo-filterbar>input,.ppo-filterbar>select{max-width:230px}.ppo-filterbar label{min-width:160px}.ppo-table-wrap{width:100%;overflow:auto}.ppo-table{width:100%;border-collapse:separate;border-spacing:0;font-size:11px}.ppo-table th{padding:8px 9px;text-align:right;color:var(--ppo-muted);font-size:9.5px;font-weight:850;border-bottom:1px solid var(--ppo-border);white-space:nowrap}.ppo-table td{padding:10px 9px;border-bottom:1px solid #edf1ef;vertical-align:middle}.ppo-table tr:last-child td{border-bottom:0}.ppo-table td strong,.ppo-table td small{display:block}.ppo-table td small{margin-top:2px;color:var(--ppo-muted);font-size:9.5px}.ppo-table tbody tr:hover{background:#fbfcfc}.ppo-empty{min-height:150px;display:grid;place-items:center;align-content:center;text-align:center;color:var(--ppo-muted);gap:5px}.ppo-empty strong{font-size:13px;color:var(--ppo-text)}.ppo-empty p{margin:0;font-size:10.5px}.ppo-empty-inline{padding:12px;text-align:center;border-radius:10px;background:var(--ppo-surface-2);color:var(--ppo-muted);font-size:10.5px}.ppo-report-list{display:grid;gap:10px}.ppo-report-card{box-shadow:none}.ppo-report-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:8px 0}.ppo-report-meta span{padding:8px 9px;border-radius:10px;background:var(--ppo-surface-2);display:grid;gap:2px;font-size:10.5px}.ppo-report-meta b{font-size:8.5px;color:var(--ppo-muted)}.ppo-note,.ppo-alert{margin-top:8px;padding:10px 11px;border-radius:11px;background:var(--ppo-surface-2);font-size:10.5px}.ppo-note b,.ppo-alert b{display:block;margin-bottom:3px}.ppo-alert{background:var(--ppo-danger-soft);color:#713434}.ppo-file-link{display:inline-block;margin-top:8px;color:var(--ppo-primary);font-size:10.5px;font-weight:850}.ppo-review-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--ppo-border)}.ppo-review-form label{display:grid;gap:4px;font-size:10px;font-weight:800}.ppo-review-form textarea{width:100%;min-height:60px;padding:8px;border:1px solid #ccd7d3;border-radius:10px}.ppo-review-form>div{display:flex;gap:6px;flex-wrap:wrap}.ppo-more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ppo-more-card{position:relative;min-height:104px;padding:16px;border:1px solid var(--ppo-border);border-radius:15px;background:#fff;display:grid;align-content:center;gap:3px;box-shadow:0 5px 18px rgba(30,54,49,.035)}.ppo-more-card strong{font-size:13px}.ppo-more-card span{font-size:10px;color:var(--ppo-muted)}.ppo-more-card em{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:16px;color:var(--ppo-primary);font-style:normal}.ppo-toast{position:fixed;z-index:120;left:24px;bottom:24px;max-width:min(430px,calc(100vw - 32px));padding:11px 42px 11px 14px;border-radius:13px;box-shadow:0 15px 40px rgba(0,0,0,.16);font-size:11px;font-weight:800}.ppo-toast.is-success{background:#163f34;color:#fff}.ppo-toast.is-error{background:#772e2e;color:#fff}.ppo-toast button{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;border-radius:8px;background:rgba(255,255,255,.14);color:#fff;cursor:pointer}.ppo-auth-body{display:grid;min-height:100vh;place-items:center;padding:18px}.ppo-auth{width:min(390px,100%)}.ppo-auth-card{padding:24px;border:1px solid var(--ppo-border);border-radius:22px;background:#fff;box-shadow:var(--ppo-shadow);text-align:center}.ppo-auth-card .ppo-brand-mark{margin:0 auto 10px}.ppo-auth-card>small{color:var(--ppo-primary);font-size:10px;font-weight:900}.ppo-auth-card h1{margin:3px 0;font-size:24px}.ppo-auth-card>p{margin:4px 0 16px;color:var(--ppo-muted);font-size:11px}.ppo-auth-card form{display:grid;gap:8px;text-align:right}.ppo-auth-card form p{margin:0}.ppo-auth-card label{display:grid;gap:4px;font-size:10.5px;font-weight:800}.ppo-auth-card input[type=text],.ppo-auth-card input[type=password]{width:100%;min-height:44px;padding:9px;border:1px solid #ccd7d3;border-radius:10px}.ppo-auth-card input[type=submit]{width:100%;min-height:44px;border:0;border-radius:10px;background:var(--ppo-primary);color:#fff;font-weight:900;cursor:pointer}.ppo-bottom-nav{display:none}
/* Driver-first components */
.ppo-driver-page{max-width:880px}.ppo-driver-hero{padding:17px 18px;border-radius:18px;background:linear-gradient(135deg,#174c41,#247161);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 10px 28px rgba(31,95,82,.18)}.ppo-driver-hero small,.ppo-driver-hero p{color:rgba(255,255,255,.75)}.ppo-driver-hero h1{font-size:23px}.ppo-driver-bell{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:999px;background:rgba(255,255,255,.12);font-size:10px;font-weight:800}.ppo-driver-bell b{min-width:20px;height:20px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:#fff;color:var(--ppo-primary)}.ppo-driver-stack{display:grid;gap:10px}.ppo-driver-card{padding:17px;border:1px solid var(--ppo-border);border-radius:18px;background:#fff;box-shadow:var(--ppo-shadow)}.ppo-driver-card.is-running{border-color:#abd2c5;box-shadow:0 0 0 3px rgba(31,95,82,.06)}.ppo-driver-card-top{display:flex;align-items:start;justify-content:space-between;gap:10px}.ppo-driver-time{display:flex;align-items:baseline;gap:7px}.ppo-driver-time strong{font-size:27px;line-height:1}.ppo-driver-time span{font-size:10px;color:var(--ppo-muted)}.ppo-driver-card h2{margin:13px 0 9px;font-size:18px}.ppo-driver-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.ppo-driver-facts>div{padding:9px 10px;border-radius:11px;background:var(--ppo-surface-2);display:grid;gap:2px}.ppo-driver-facts>.is-wide{grid-column:1/-1}.ppo-driver-facts small{font-size:8.5px;color:var(--ppo-muted)}.ppo-driver-facts strong{font-size:11.5px}.ppo-driver-note{margin:9px 0;padding:10px;border-right:3px solid var(--ppo-primary);border-radius:10px;background:var(--ppo-primary-soft);font-size:11px}.ppo-live-status{margin:10px 0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:9px 10px;border-radius:11px;background:var(--ppo-success-soft);color:var(--ppo-success)}.ppo-live-status i{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px rgba(40,122,78,.12)}.ppo-live-status span{font-size:10.5px;font-weight:900}.ppo-live-status small{font-size:9px}.ppo-report-box{margin-top:10px;border-top:1px solid var(--ppo-border);padding-top:10px}.ppo-report-box summary{cursor:pointer;font-size:11.5px;font-weight:900;color:var(--ppo-primary)}.ppo-form-stack{display:grid;gap:9px;margin-top:10px}.ppo-state-box{margin-top:10px;padding:10px;border-radius:11px;font-size:10.5px;font-weight:800}.ppo-state-box.is-waiting{background:var(--ppo-warning-soft);color:var(--ppo-warning)}.ppo-state-box.is-done{background:var(--ppo-success-soft);color:var(--ppo-success)}.ppo-driver-next{display:grid;gap:8px}.ppo-section-title{display:flex;align-items:center;justify-content:space-between}.ppo-section-title h2{margin:0;font-size:14px}.ppo-section-title span{font-size:9.5px;color:var(--ppo-muted)}.ppo-history-list,.ppo-notification-list{display:grid;gap:8px}.ppo-history-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 14px}.ppo-history-list article>div{display:grid;gap:2px}.ppo-history-list span,.ppo-history-list small{font-size:9.5px;color:var(--ppo-muted)}.ppo-notification-list article{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;box-shadow:none}.ppo-notification-list article.is-unread{border-right:4px solid var(--ppo-primary);background:#fbfefd}.ppo-notification-list strong{font-size:11.5px}.ppo-notification-list p{margin:3px 0 0;font-size:10.5px;color:var(--ppo-muted)}.ppo-notification-list>article>small{white-space:nowrap;font-size:9px;color:var(--ppo-muted)}code{font-family:Consolas,monospace;font-size:10px;direction:ltr;unicode-bidi:embed}

.ppo-field-help{display:block;margin-top:6px;color:#6b7b76;font-size:12px;line-height:1.7}

/* v0.2.3: machine-first planner, Jalali inputs, work-status chart */
.ppo-badge.is-special{background:#efe9ff;color:#5a3a9b;border:1px solid #ded0ff}.ppo-jalali-input{direction:ltr;text-align:center;letter-spacing:.4px}.ppo-schedule-date{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding:10px;border:1px solid var(--ppo-border);border-radius:12px;background:var(--ppo-surface-2)}.ppo-time-toggle{margin:0;min-height:43px}.ppo-time-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ppo-machine-board{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;align-items:start;direction:rtl}.ppo-machine-picker{display:grid;gap:6px;position:sticky;top:90px}.ppo-machine-picker a{min-height:58px;padding:9px 10px;border:1px solid var(--ppo-border);border-radius:12px;background:var(--ppo-surface-2);display:flex;align-items:center;justify-content:space-between;gap:8px}.ppo-machine-picker a:hover{border-color:#bdd2cb;background:#fff}.ppo-machine-picker a.is-active{background:var(--ppo-primary-soft);border-color:#b9d2ca;color:var(--ppo-primary)}.ppo-machine-picker span{display:grid;min-width:0}.ppo-machine-picker strong{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ppo-machine-picker small{font-size:9px;color:var(--ppo-muted)}.ppo-machine-picker b{min-width:26px;height:26px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:#fff;border:1px solid var(--ppo-border);font-size:10px}.ppo-machine-schedule{min-width:0;direction:rtl}.ppo-vehicle-day{display:grid;gap:8px}.ppo-machine-task{display:grid;grid-template-columns:116px minmax(0,1fr) 100px;gap:12px;align-items:center;padding:12px;border:1px solid var(--ppo-border);border-radius:14px;background:#fff}.ppo-machine-task.is-special{border-color:#d7c8f7;background:linear-gradient(90deg,#fff,#fbf9ff)}.ppo-machine-task-clock{display:grid;gap:2px;padding-left:10px;border-left:1px solid var(--ppo-border);text-align:center}.ppo-machine-task-clock strong{font-size:15px;color:var(--ppo-primary)}.ppo-machine-task-clock small,.ppo-machine-task-clock em{font-size:8.8px;color:var(--ppo-muted);font-style:normal}.ppo-machine-task-main{min-width:0}.ppo-machine-task-main h3{margin:0;font-size:13px}.ppo-machine-task-main p{margin:5px 0;color:#46534f;font-size:10.5px;line-height:1.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ppo-machine-task-meta{display:flex;flex-wrap:wrap;gap:5px 12px;color:var(--ppo-muted);font-size:9.5px}.ppo-machine-task-state{display:grid;gap:7px;justify-items:stretch;text-align:center}.ppo-machine-task-state>a{font-size:9.5px;color:var(--ppo-primary);font-weight:850}.ppo-work-state{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:5px 8px;border-radius:999px;font-size:9.5px;font-weight:900}.ppo-work-state.is-completed{background:var(--ppo-success-soft);color:var(--ppo-success)}.ppo-work-state.is-working{background:#e9f2ff;color:#275d9c}.ppo-work-state.is-soon{background:var(--ppo-warning-soft);color:var(--ppo-warning)}.ppo-status-chart{display:grid;gap:9px}.ppo-chart-legend{display:flex;gap:14px;align-items:center;font-size:9px;color:var(--ppo-muted)}.ppo-chart-legend span{display:flex;align-items:center;gap:5px}.ppo-chart-legend span:before{content:"";width:8px;height:8px;border-radius:3px;background:currentColor}.ppo-chart-legend .is-completed{color:var(--ppo-success)}.ppo-chart-legend .is-working{color:#3978b9}.ppo-chart-legend .is-soon{color:#ba831d}.ppo-chart-row{display:grid;grid-template-columns:74px minmax(0,1fr) 24px;align-items:center;gap:8px}.ppo-chart-row small{font-size:8.8px;color:var(--ppo-muted)}.ppo-chart-row b{font-size:10px;text-align:left}.ppo-chart-track{height:13px;display:flex;overflow:hidden;border-radius:999px;background:#eef2f1}.ppo-chart-track i{display:block;height:100%}.ppo-chart-track .is-completed{background:#56a779}.ppo-chart-track .is-working{background:#6fa0d0}.ppo-chart-track .is-soon{background:#e7bd68}.ppo-driver-card.is-special{border-color:#d7c8f7;background:#fffdfd}

/* Phase 1 operator-speed additions */
.ppo-phone-inline{display:inline-flex;align-items:center;min-height:24px;margin-inline-start:7px;padding:3px 8px;border:1px solid #cfe3ee;border-radius:999px;background:#eef8fd;color:#176483;font-size:9.5px;font-weight:900;direction:ltr;white-space:nowrap;vertical-align:middle}.ppo-phone-inline:hover{background:#e2f3fb;border-color:#a9d4e7}.ppo-driver-titleline{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:2px 0 10px}.ppo-driver-titleline h2{margin:0}.ppo-card-title{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.ppo-card-title h3{margin-inline-end:auto}
.ppo-date-trigger{min-height:38px;margin-top:6px;padding:7px 10px;border:1px solid var(--ppo-border);border-radius:10px;background:var(--ppo-surface-2);color:var(--ppo-primary);cursor:pointer;font-size:10px;font-weight:900}.ppo-jalali-picker{position:absolute;z-index:9999;padding:11px;border:1px solid var(--ppo-border);border-radius:15px;background:var(--ppo-surface);box-shadow:0 18px 48px rgba(22,48,42,.18);direction:rtl}.ppo-picker-head{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:6px;margin-bottom:8px}.ppo-picker-head strong{text-align:center;font-size:12px}.ppo-picker-head button,.ppo-picker-foot button{border:1px solid var(--ppo-border);border-radius:9px;background:var(--ppo-surface-2);color:var(--ppo-text);cursor:pointer;font-weight:900}.ppo-picker-head button{width:36px;height:34px;font-size:18px}.ppo-picker-week,.ppo-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.ppo-picker-week{margin-bottom:4px}.ppo-picker-week span{padding:4px 0;text-align:center;color:var(--ppo-muted);font-size:9px;font-weight:900}.ppo-picker-grid i{min-height:34px}.ppo-picker-grid button{height:34px;border:0;border-radius:9px;background:transparent;color:var(--ppo-text);cursor:pointer;font-size:10.5px;font-weight:800}.ppo-picker-grid button:hover{background:var(--ppo-primary-soft);color:var(--ppo-primary)}.ppo-picker-grid button.is-today{box-shadow:inset 0 0 0 1px var(--ppo-primary);color:var(--ppo-primary)}.ppo-picker-grid button.is-selected{background:var(--ppo-primary);color:#fff;box-shadow:none}.ppo-picker-foot{display:flex;justify-content:space-between;gap:7px;margin-top:9px;padding-top:9px;border-top:1px solid var(--ppo-border)}.ppo-picker-foot button{min-height:34px;padding:6px 11px;font-size:9.5px}.ppo-form-hint[hidden],[data-ppo-private-title-field][hidden],[data-ppo-private-extra-field][hidden],[data-ppo-private-customer-field][hidden],[data-ppo-private-customer-section][hidden],[data-ppo-date-block][hidden],[data-ppo-time-fields][hidden]{display:none!important}

/* Phase 2: role-aware authentication and municipality read-only portal */
.ppo-auth-wide{width:min(520px,100%)}.ppo-login-error{margin:0 0 12px;padding:9px 11px;border:1px solid #efc3c3;border-radius:11px;background:var(--ppo-danger-soft);color:#7a3030;font-size:10.5px;font-weight:850;text-align:right}.ppo-login-roles{margin:0 0 4px;padding:0;border:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.ppo-login-roles legend{width:100%;margin-bottom:6px;color:var(--ppo-muted);font-size:9.5px;font-weight:850}.ppo-login-roles label{display:block!important;cursor:pointer}.ppo-login-roles input{position:absolute;opacity:0;pointer-events:none}.ppo-login-roles span{min-height:68px;padding:9px 7px;border:1px solid var(--ppo-border);border-radius:12px;background:var(--ppo-surface-2);display:grid;place-items:center;align-content:center;gap:2px;text-align:center;transition:border-color .12s,background .12s,transform .12s}.ppo-login-roles b{font-size:11px}.ppo-login-roles small{font-size:8.5px;color:var(--ppo-muted)}.ppo-login-roles input:focus-visible+span{box-shadow:0 0 0 3px rgba(31,95,82,.16);border-color:var(--ppo-primary)}.ppo-login-roles input:checked+span{border-color:#9ecbc0;background:var(--ppo-primary-soft);color:var(--ppo-primary);box-shadow:0 0 0 2px rgba(31,95,82,.06)}.ppo-login-roles label:active span{transform:scale(.985)}.ppo-login-remember{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center!important;justify-content:flex-start;gap:7px!important;padding:5px 2px}.ppo-login-remember input{width:16px!important;height:16px!important;min-height:0!important}.ppo-password-card{border-color:#d7dfdc}.ppo-municipality-page{max-width:1180px}.ppo-municipality-page .ppo-plan-card{grid-template-columns:92px minmax(0,1fr) 110px}.ppo-stats-compact .ppo-stat{min-height:96px}

/* v0.4.1: operation-first typography and preferences */
.ppo-job-title{font-size:13px;line-height:1.75;display:block;white-space:normal}.ppo-customer-name{font-size:11.8px!important;font-weight:800!important;color:var(--ppo-text)!important;line-height:1.8}.ppo-table td[data-label="منابع"] strong{display:block;font-size:11.5px}.ppo-table td[data-label="منابع"] small{display:block;margin-top:3px}.ppo-settings-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 14px}.ppo-settings-tabs a{border-radius:10px;padding:10px 14px;background:var(--ppo-surface-2);border:1px solid var(--ppo-border);font-size:11px;font-weight:800}.ppo-settings-tabs a.is-active{color:var(--ppo-primary);background:var(--ppo-primary-soft);border-color:var(--ppo-primary)}.ppo-otp-help{font-size:10px;color:var(--ppo-muted);line-height:1.8;margin-top:12px}.ppo-density-regular .ppo-panel{padding:20px}.ppo-theme-dark{--ppo-surface:#172637;--ppo-surface-2:#1c3047;--ppo-border:#37506a;--ppo-text:#f3f7ff;--ppo-muted:#bccbdb;--ppo-primary:#86c5ff;--ppo-primary-soft:#253e59;--ppo-bg:#101b2a;background:#101b2a;color:#f3f7ff}.ppo-theme-dark .ppo-machine-task,.ppo-theme-dark .ppo-machine-picker a,.ppo-theme-dark .ppo-table-wrap,.ppo-theme-dark .ppo-panel{background:#172637;color:#f3f7ff}.ppo-theme-dark input,.ppo-theme-dark select,.ppo-theme-dark textarea{background:#20344c;color:#f3f7ff;border-color:#415a77}.ppo-theme-dark .ppo-phone-inline{color:#a8d6f5;background:#264561}.ppo-theme-dark a{color:inherit}

.ppo-manual-banner{padding:7px 12px;margin-bottom:12px;border:1px solid #e3cf9c;border-radius:10px;background:#fff8e8;color:#755c20}.ppo-theme-dark .ppo-topbar{background:rgba(18,31,47,.96)}.ppo-theme-dark .ppo-sidebar,.ppo-theme-dark .ppo-bottom-nav{background:#142439;color:#f2f6fd}.ppo-theme-dark .ppo-icon-button,.ppo-theme-dark .ppo-machine-picker b{background:#27425e;color:#eef7ff}.ppo-theme-dark .ppo-manual-banner{background:#463920;color:#f0d7a3;border-color:#846b37}
