:root{--font-thai:"Sarabun", sans-serif;--font-eng:"Outfit", sans-serif;--primary:#2463eb;--primary-hover:#1450d2;--primary-glow:#2563eb26;--success:#21c45d;--success-bg:#e9fbf0;--success-text:#0f7033;--warning:#f59f0a;--warning-bg:#fef5e7;--warning-text:#7a4f05;--danger:#ee1141;--danger-bg:#feecf0;--danger-text:#770820;--info:#0b95da;--info-bg:#e7f6fe;--info-text:#065379;--bg-primary:#f4f7fa;--bg-secondary:#fff;--bg-card:#fff;--text-primary:#0f1729;--text-secondary:#566e8f;--text-muted:#97a3b4;--border-color:#e1e7ef;--border-focus:#a2bcf6;--card-shadow:0 10px 25px -5px #0000000d, 0 8px 16px -8px #0000000d;--card-shadow-hover:0 20px 30px -10px #00000014, 0 10px 20px -10px #00000014;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--transition:all .3s cubic-bezier(.4, 0, .2, 1);--max-width:1200px}body.dark-theme{--bg-primary:#0b111e;--bg-secondary:#0f1729;--bg-card:#131d34;--text-primary:#f8fafc;--text-secondary:#b3bdcc;--text-muted:#7e8a9a;--border-color:#242d42;--border-focus:#0f3ea3;--card-shadow:0 15px 35px -10px #0000004d;--card-shadow-hover:0 25px 45px -10px #0006;--success-bg:#10b9811a;--success-text:#66e595;--warning-bg:#f59e0b1a;--warning-text:#f8bc54;--danger-bg:#ef44441a;--danger-text:#f3587a;--info-bg:#0ea5e91a;--info-text:#55c1f6}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font-thai);background-color:var(--bg-primary);color:var(--text-primary);transition:var(--transition);min-height:100vh;line-height:1.6}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}h1,h2,h3,h4,h5,h6{font-family:var(--font-thai);color:var(--text-primary);font-weight:700;line-height:1.3}.font-number{font-family:var(--font-eng)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseGlow{0%{opacity:.5;transform:scale(.95)}50%{opacity:.8;transform:scale(1.1)}to{opacity:.5;transform:scale(.95)}}.animate-fade-in{animation:.4s cubic-bezier(.16,1,.3,1) forwards fadeIn}.app-container{flex-direction:column;min-height:100vh;display:flex}.main-content{width:100%;max-width:var(--max-width);flex:1;margin:0 auto;padding:24px 16px;animation:.5s ease-out fadeIn}.navbar{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:1000;transition:var(--transition);position:sticky;top:0;box-shadow:0 2px 10px #00000005}.navbar-container{max-width:var(--max-width);justify-content:space-between;align-items:center;margin:0 auto;padding:16px;display:flex}.navbar-brand{align-items:center;gap:12px;text-decoration:none;display:flex}.navbar-logo{background:linear-gradient(135deg, var(--primary), var(--info));color:#fff;width:42px;height:42px;box-shadow:0 4px 10px var(--primary-glow);border-radius:50%;justify-content:center;align-items:center;font-size:20px;display:flex}.navbar-title{flex-direction:column;display:flex}.navbar-title h1{background:linear-gradient(to right, var(--text-primary), var(--primary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.15rem;font-weight:700}.navbar-title span{color:var(--text-secondary);font-size:.75rem}.navbar-actions{align-items:center;gap:12px;display:flex}.card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--card-shadow);transition:var(--transition);padding:24px;position:relative;overflow:hidden}.card:hover{box-shadow:var(--card-shadow-hover);transform:translateY(-2px)}.card-title{border-bottom:1px dashed var(--border-color);align-items:center;gap:10px;margin-bottom:16px;padding-bottom:12px;font-size:1.2rem;font-weight:600;display:flex}.grid{gap:20px;width:100%;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid-sidebar{grid-template-columns:1fr;gap:24px;display:grid}@media (width>=900px){.grid-sidebar{grid-template-columns:350px 1fr}}@media print{.no-print{display:none!important}.print-only{display:block!important}}@media screen{.print-memo-only{display:none!important}}@media print{@page{size:A4 portrait;margin:0}body,html,#root,.app-container,.main-content,.card,.navbar,.footer,.tabs{visibility:hidden!important;box-shadow:none!important;background:0 0!important;height:auto!important;margin:0!important;padding:0!important}.print-memo-only,.print-memo-only *{visibility:visible!important}.print-memo-only{box-sizing:border-box;width:210mm;height:297mm;position:absolute;top:0;left:0;color:#000!important;background-color:#fff!important;padding:1.5cm 1.5cm 1cm 2cm!important;font-family:Sarabun,sans-serif!important;font-size:12pt!important;line-height:1.35!important;display:block!important}.memo-header{text-align:center;margin-bottom:8px;font-size:16pt;font-weight:700;position:relative}.memo-garuda-space{width:45px;height:45px;margin:0 auto 3px}.memo-row{border-bottom:1px dashed #ccc;margin-bottom:4px;padding-bottom:1px;display:flex}.memo-row strong{flex-shrink:0;width:100px}.memo-body{text-indent:1.2cm;text-align:justify;margin-top:10px;margin-bottom:10px}.memo-signatures-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:15px;font-size:11pt;display:grid}.memo-signature-block{text-align:center;margin-bottom:10px}.memo-approval-box{page-break-inside:avoid;border:1px solid #000;border-radius:4px;margin-top:12px;padding:8px 12px;font-size:11pt}}.form-group{margin-bottom:18px}.form-label{color:var(--text-primary);margin-bottom:6px;font-size:.9rem;font-weight:500;display:block}.form-control{width:100%;font-family:var(--font-thai);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);transition:var(--transition);padding:12px 16px;font-size:.95rem}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}textarea.form-control{resize:vertical;min-height:100px}.btn{font-family:var(--font-thai);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background-color:var(--primary);color:#fff;box-shadow:0 4px 12px var(--primary-glow)}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:var(--border-color);color:var(--text-primary)}.btn-secondary:hover{background-color:var(--text-muted);color:#fff}.btn-success{background-color:var(--success);color:#fff}.btn-success:hover{filter:brightness(.9)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(.9)}.btn-outline{border:1px solid var(--border-color);color:var(--text-primary);background-color:#0000}.btn-outline:hover{background-color:var(--bg-primary);border-color:var(--text-muted)}.badge{border-radius:30px;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.badge-pending{background-color:var(--danger-bg);color:var(--danger-text)}.badge-assigned{background-color:var(--info-bg);color:var(--info-text)}.badge-progress{background-color:var(--warning-bg);color:var(--warning-text)}.badge-completed{background-color:var(--success-bg);color:var(--success-text)}.badge-rejected{background-color:var(--text-muted);color:#fff}.status-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.status-dot.แจ้งเรื่อง{background-color:var(--danger)}.status-dot.รับเรื่องแล้ว{background-color:var(--info)}.status-dot.กำลังดำเนินการ{background-color:var(--warning)}.status-dot.ซ่อมแซมเสร็จสิ้น{background-color:var(--success)}.status-dot.ปฏิเสธ{background-color:var(--text-muted)}.tabs{border-bottom:1px solid var(--border-color);gap:8px;margin-bottom:24px;padding-bottom:1px;display:flex;overflow-x:auto}.tab-item{color:var(--text-secondary);cursor:pointer;transition:var(--transition);white-space:nowrap;background:0 0;border:none;padding:12px 20px;font-size:.95rem;font-weight:600;position:relative}.tab-item:after{content:"";background-color:var(--primary);width:100%;height:3px;transition:var(--transition);position:absolute;bottom:-1px;left:0;transform:scaleX(0)}.tab-item:hover{color:var(--text-primary)}.tab-item.active{color:var(--primary)}.tab-item.active:after{transform:scaleX(1)}.file-upload-zone{border:2px dashed var(--border-color);border-radius:var(--radius-md);text-align:center;cursor:pointer;background-color:var(--bg-primary);transition:var(--transition);padding:24px}.file-upload-zone:hover{border-color:var(--primary);background-color:var(--primary-glow)}.file-upload-preview{border-radius:var(--radius-sm);object-fit:cover;max-width:100%;max-height:200px;margin-top:12px}.map-container{border-radius:var(--radius-md);border:1px solid var(--border-color);z-index:1;width:100%;height:350px;position:relative;overflow:hidden}.timeline{margin-top:16px;padding-left:24px;position:relative}.timeline:before{content:"";background-color:var(--border-color);width:2px;position:absolute;top:4px;bottom:4px;left:7px}.timeline-item{margin-bottom:20px;position:relative}.timeline-item:before{content:"";background-color:var(--border-color);border:2px solid var(--bg-card);border-radius:50%;width:10px;height:10px;position:absolute;top:6px;left:-21px}.timeline-item.active:before{background-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.timeline-date{color:var(--text-muted);font-size:.75rem;font-weight:500}.timeline-content{margin-top:4px}.timeline-content h4{font-size:.9rem;font-weight:600}.timeline-content p{color:var(--text-secondary);font-size:.85rem}.metric-card{justify-content:space-between;align-items:center;padding:20px;display:flex}.metric-info{flex-direction:column;display:flex}.metric-label{color:var(--text-secondary);text-transform:uppercase;font-size:.85rem;font-weight:600}.metric-value{margin-top:4px;font-size:2rem;font-weight:700;line-height:1.1}.metric-icon{border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.search-box{gap:10px;margin-bottom:20px;display:flex}.search-box input{flex:1}.table-responsive{border-radius:var(--radius-md);border:1px solid var(--border-color);width:100%;overflow-x:auto}.table{border-collapse:collapse;text-align:left;width:100%;font-size:.9rem}.table th{background-color:var(--bg-primary);color:var(--text-primary);border-bottom:1px solid var(--border-color);padding:14px 16px;font-weight:600}.table td{border-bottom:1px solid var(--border-color);color:var(--text-secondary);vertical-align:middle;padding:14px 16px}.table tr:last-child td{border-bottom:none}.table tr:hover td{background-color:var(--bg-primary);color:var(--text-primary)}.chart-container{background-color:var(--bg-card);border-radius:var(--radius-md);margin-top:16px;padding:16px}.chart-bar-row{align-items:center;gap:16px;margin-bottom:12px;display:flex}.chart-bar-label{white-space:nowrap;text-overflow:ellipsis;width:140px;font-size:.85rem;font-weight:500;overflow:hidden}.chart-bar-wrapper{background-color:var(--bg-primary);border-radius:6px;flex:1;height:12px;overflow:hidden}.chart-bar-fill{background:linear-gradient(90deg, var(--primary), var(--info));border-radius:6px;height:100%;transition:width .8s ease-out}.chart-bar-value{text-align:right;width:40px;color:var(--text-primary);font-size:.85rem;font-weight:600}.footer{background-color:var(--bg-secondary);border-top:1px solid var(--border-color);text-align:center;color:var(--text-muted);padding:24px 16px;font-size:.85rem}
