:root{--bg-primary:#f5f7fa;--bg-secondary:#fff;--bg-tertiary:#f9fafb;--bg-hover:#f0f2f5;--text-primary:#1a1a1a;--text-secondary:#666;--text-tertiary:#888;--text-inverse:#fff;--border-color:#e0e0e0;--border-hover:#d0d0d0;--primary:#1e3c72;--primary-hover:#2a5298;--primary-light:#3d6bb3;--primary-gradient:linear-gradient(135deg,#1e3c72,#2a5298);--shadow-sm:0 2px 4px #00000014;--shadow-md:0 4px 12px #0000001f;--shadow-lg:0 8px 24px #00000029;--shadow-xl:0 12px 40px #0003;--success:#10b981;--warning:#f59e0b;--error:#ef4444;--info:#3b82f6;--transition-fast:0.15s ease;--transition-base:0.3s ease;--transition-slow:0.5s ease}[data-theme=dark]{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--bg-hover:#475569;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-tertiary:#94a3b8;--text-inverse:#0f172a;--border-color:#334155;--border-hover:#475569;--primary:#3b82f6;--primary-hover:#60a5fa;--primary-light:#93c5fd;--primary-gradient:linear-gradient(135deg,#1e40af,#3b82f6);--shadow-sm:0 2px 4px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--shadow-xl:0 12px 40px #0009;--success:#22c55e;--warning:#fbbf24;--error:#f87171;--info:#60a5fa}*{box-sizing:border-box;margin:0;padding:0;transition:background-color .3s ease,color .3s ease,border-color .3s ease;transition:background-color var(--transition-base),color var(--transition-base),border-color var(--transition-base)}body,html{background-color:#f5f7fa;background-color:var(--bg-primary);min-height:100vh}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#1a1a1a;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;transition:background-color .3s ease,color .3s ease;transition:background-color var(--transition-base),color var(--transition-base)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-fade-in{animation:fadeIn ease-out .3s ease;animation:fadeIn var(--transition-base) ease-out}.animate-slide-in{animation:slideIn ease-out .3s ease;animation:slideIn var(--transition-base) ease-out}.animate-scale-in{animation:scaleIn ease-out .3s ease;animation:scaleIn var(--transition-base) ease-out}[title]{cursor:help;position:relative}[title]:hover:after{animation:fadeIn ease-out .15s ease;animation:fadeIn var(--transition-fast) ease-out;background:#1e3c72;background:var(--primary);border-radius:6px;box-shadow:0 4px 12px #0000001f;box-shadow:var(--shadow-md);color:#fff;color:var(--text-inverse);content:attr(title);font-size:.85rem;margin-bottom:8px;padding:.5rem .75rem;white-space:nowrap;z-index:10000}[title]:hover:after,[title]:hover:before{bottom:100%;left:50%;pointer-events:none;position:absolute;transform:translateX(-50%)}[title]:hover:before{border:6px solid #0000;border-top:6px solid var(--primary);content:"";margin-bottom:2px;z-index:10001}.btn-primary,button.btn-primary{background:#1e3c72;background:var(--primary);border:none;border-radius:8px;box-shadow:0 2px 4px #00000014;box-shadow:var(--shadow-sm);color:#fff;color:var(--text-inverse);cursor:pointer;font-size:1rem;font-weight:500;overflow:hidden;padding:.75rem 1.5rem;position:relative;transition:all .3s ease;transition:all var(--transition-base)}.btn-primary:before{background:#fff3;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.btn-primary:hover:not(:disabled):before{height:300px;width:300px}.btn-primary:hover:not(:disabled){background:#2a5298;background:var(--primary-hover);box-shadow:0 4px 12px #0000001f;box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn-primary:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-secondary,button.btn-secondary{background:#fff;background:var(--bg-secondary);border:2px solid #e0e0e0;border:2px solid var(--border-color);border-radius:8px;color:#1a1a1a;color:var(--text-primary);cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease;transition:all var(--transition-base)}.btn-secondary:hover:not(:disabled){background:#f0f2f5;background:var(--bg-hover);border-color:#1e3c72;border-color:var(--primary);box-shadow:0 2px 4px #00000014;box-shadow:var(--shadow-sm);transform:translateY(-2px)}.btn-secondary:disabled{cursor:not-allowed;opacity:.6}.btn-edit,button.btn-edit{background:#3b82f6;background:var(--info);border:none;border-radius:6px;color:#fff;color:var(--text-inverse);cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease;transition:all var(--transition-base)}.btn-edit:hover{background:#1e3c72;box-shadow:0 2px 4px #00000014}.btn-delete,button.btn-delete{background:#ef4444;background:var(--error);border:none;border-radius:6px;color:#fff;color:var(--text-inverse);cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease;transition:all var(--transition-base)}.btn-delete:hover{box-shadow:0 2px 4px #00000014}.btn-delete-small{background:#ef4444;background:var(--error);color:var(--text-inverse);transition:all .3s ease;transition:all var(--transition-base)}.btn-delete-small:hover{background:#dc2626;transform:translateY(-1px)}.development-banner{animation:slideDown var(--transition-base) ease-out;background:linear-gradient(135deg,#ff9800,#f57c00);box-shadow:0 2px 8px #00000026;box-sizing:border-box;color:#fff;display:block;flex-shrink:0;max-height:200px;overflow:hidden;padding:.75rem 1rem;position:-webkit-sticky;position:sticky;top:0;transition:max-height .3s ease-out,padding .3s ease-out,margin .3s ease-out,opacity .3s ease-out,border .3s ease-out;width:100%;z-index:101}.development-banner.dismissing{border:none;box-shadow:none;height:0!important;margin:0!important;max-height:0!important;min-height:0!important;opacity:0;overflow:hidden;padding-bottom:0!important;padding-top:0!important}.development-banner.dismissing .development-banner-content{opacity:0;transform:translateY(-10px);transition:opacity .2s ease-out,transform .2s ease-out}.development-banner-content{align-items:center;display:flex;gap:.75rem;margin:0 auto;max-width:1400px;position:relative}.development-banner-icon{flex-shrink:0;font-size:1.25rem}.development-banner-text{flex:1 1;font-size:.875rem;line-height:1.4}.development-banner-text strong{font-weight:600}.development-banner-link{color:#fff;font-weight:500;text-decoration:underline;transition:opacity var(--transition-fast)}.development-banner-link:hover{opacity:.8}.development-banner-close{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:1.5rem;font-weight:300;height:28px;justify-content:center;line-height:1;padding:0;transition:all var(--transition-base);width:28px}.development-banner-close:hover{background:#ffffff4d;transform:scale(1.1)}.development-banner-close:active{transform:scale(.95)}@media (max-width:768px){.development-banner{padding:.75rem}.development-banner-text{font-size:.8rem}.development-banner-icon{font-size:1rem}.development-banner-close{font-size:1.25rem;height:24px;width:24px}}.login-wrapper{background:var(--bg-primary);display:flex;flex-direction:column;min-height:100vh}.login-container{align-items:center;background:var(--primary-gradient);display:flex;flex:1 1;justify-content:center;overflow:hidden;padding:2rem;position:relative}.login-container:before{animation:shimmer 20s linear infinite;background:radial-gradient(circle,#ffffff1a 1px,#0000 0);background-size:50px 50px;content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%}.login-container:after{background:radial-gradient(circle at 20% 50%,#3b82f61a 0,#0000 50%),radial-gradient(circle at 80% 80%,#8b5cf61a 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.login-card{animation:scaleIn var(--transition-base) ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:20px;box-shadow:var(--shadow-xl);max-width:450px;padding:3rem 2.5rem;position:relative;text-align:center;width:100%;z-index:1}.login-header{margin-bottom:2.5rem}.login-logo{animation:fadeIn var(--transition-base) ease-out .1s both;display:flex;justify-content:center;margin-bottom:1.5rem}.logo-icon{animation:float 3s ease-in-out infinite;color:var(--primary);filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));height:64px;width:64px}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.login-card h1{-webkit-text-fill-color:#0000;animation:fadeIn var(--transition-base) ease-out .2s both;background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:2.25rem;font-weight:700;margin-bottom:.5rem}.login-card .subtitle{animation:fadeIn var(--transition-base) ease-out .3s both;color:var(--text-secondary);font-size:1rem;font-weight:500;margin-bottom:0}.login-body{animation:fadeIn var(--transition-base) ease-out .4s both}.login-card .description{color:var(--text-tertiary);font-size:.95rem;line-height:1.6;margin-bottom:2rem}.google-sign-in-button{align-items:center;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:10px;box-shadow:var(--shadow-sm);color:var(--text-primary);cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:12px;justify-content:center;overflow:hidden;padding:14px 24px;position:relative;transition:all var(--transition-base);width:100%}.google-sign-in-button:before{background:linear-gradient(90deg,#0000,#3b82f61a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.google-sign-in-button:hover:not(:disabled):before{left:100%}.google-sign-in-button:hover:not(:disabled){background:var(--bg-hover);border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.google-sign-in-button:active:not(:disabled){transform:translateY(0)}.google-sign-in-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.google-icon{flex-shrink:0;height:20px;transition:transform var(--transition-base);width:20px}.google-sign-in-button:hover:not(:disabled) .google-icon{transform:scale(1.1) rotate(5deg)}@media (max-width:768px){.login-container{padding:1.5rem}.login-card{border-radius:16px;padding:2rem 1.5rem}.login-card h1{font-size:1.75rem}.logo-icon{height:56px;width:56px}}.layout{animation:fadeIn var(--transition-base) ease-out;background-color:var(--bg-primary);display:flex;flex-direction:column;min-height:100vh}.layout-header{animation:slideIn var(--transition-base) ease-out;background:var(--primary-gradient);box-shadow:var(--shadow-md);color:var(--text-inverse);padding:1rem 0;position:-webkit-sticky;position:sticky;top:0;transition:top .3s ease-out;z-index:100}.layout:not(.banner-dismissed) .layout-header{top:3.5rem}.layout.banner-dismissed .layout-header{top:0}.header-content{align-items:center;display:flex;gap:2rem;justify-content:space-between;margin:0 auto;max-width:1400px;padding:0 2rem}.logo{color:var(--text-inverse);text-decoration:none;transition:transform var(--transition-fast)}.logo:hover{transform:scale(1.05)}.logo h1{font-size:1.5rem;font-weight:700;margin:0}.main-nav{display:flex;flex:1 1;gap:1rem;justify-content:center}.nav-link{border-radius:6px;color:#ffffffe6;font-weight:500;overflow:hidden;padding:.5rem 1rem;position:relative;text-decoration:none;transition:all var(--transition-base)}.nav-link:before{background:#ffffff1a;content:"";height:100%;left:-100%;position:absolute;top:0;transition:left var(--transition-base);width:100%}.nav-link:hover:before{left:0}.nav-link:hover{background:#ffffff1a;color:var(--text-inverse);transform:translateY(-2px)}.nav-link.active{background:#fff3;box-shadow:0 2px 8px #0003;color:var(--text-inverse)}.user-menu{gap:1rem}.theme-toggle,.user-menu{align-items:center;display:flex}.theme-toggle{animation:scaleIn var(--transition-fast) ease-out;background:#fff3;border:1px solid #ffffff4d;border-radius:50%;color:var(--text-inverse);cursor:pointer;font-size:1.2rem;height:2.5rem;justify-content:center;padding:.5rem;transition:all var(--transition-base);width:2.5rem}.theme-toggle:hover{background:#ffffff4d;transform:rotate(15deg) scale(1.1)}.user-email{opacity:.9}.sign-out-button,.user-email{color:var(--text-inverse);font-size:.9rem}.sign-out-button{background:#fff3;border:1px solid #ffffff4d;border-radius:6px;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:all var(--transition-base)}.sign-out-button:hover{background:#ffffff4d;box-shadow:0 4px 8px #0003;transform:translateY(-2px)}.layout-main{animation:fadeIn var(--transition-base) ease-out;flex:1 1;padding:0}@media (max-width:768px){.header-content{flex-direction:column;gap:1rem;padding:0 1rem}.logo h1{font-size:1.25rem}.main-nav{flex-wrap:wrap;gap:.5rem;justify-content:space-around;width:100%}.nav-link{font-size:.9rem;padding:.4rem .75rem}.user-menu{flex-wrap:wrap;justify-content:space-between;width:100%}.user-email{font-size:.8rem;word-break:break-all}.sign-out-button{font-size:.85rem;padding:.4rem .75rem}}@media (max-width:480px){.header-content{padding:0 .75rem}.logo h1{font-size:1.1rem}.main-nav{gap:.25rem}.nav-link{font-size:.85rem;padding:.35rem .5rem}}.dashboard{animation:fadeIn var(--transition-base) ease-out;display:flex;flex-direction:column;min-height:100vh}.dashboard-main{flex:1 1;margin:0 auto;max-width:1200px;padding:2rem;width:100%}.welcome-section{animation:slideIn var(--transition-base) ease-out}.welcome-section h2{color:var(--text-primary);font-size:2rem;margin-bottom:.5rem}.welcome-section>p{color:var(--text-secondary);font-size:1.1rem;margin-bottom:2rem}.feature-cards{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:2rem}.feature-card{animation:scaleIn var(--transition-base) ease-out;animation-fill-mode:both;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-md);padding:2rem;transition:all var(--transition-base)}.feature-card:first-child{animation-delay:.1s}.feature-card:nth-child(2){animation-delay:.2s}.feature-card:nth-child(3){animation-delay:.3s}.feature-card:hover{border-color:var(--primary);box-shadow:var(--shadow-lg);transform:translateY(-8px) scale(1.02)}.feature-card h3{color:var(--primary);font-size:1.3rem;margin-bottom:.5rem}.feature-card p{color:var(--text-secondary);line-height:1.6;margin-bottom:1.5rem}.card-button{background:var(--primary);border:none;border-radius:8px;color:var(--text-inverse);cursor:pointer;font-size:1rem;font-weight:500;overflow:hidden;padding:.75rem;position:relative;transition:all var(--transition-base);width:100%}.card-button:before{background:#fff3;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.card-button:hover:before{height:300px;width:300px}.card-button:hover{background:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.bulk-update-modal{align-items:center;animation:fadeIn var(--transition-fast) ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.bulk-update-content{animation:scaleIn var(--transition-base) ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-xl);max-height:90vh;max-width:800px;overflow-y:auto;padding:2rem;width:90%}.bulk-update-content h3{color:var(--text-primary);margin-bottom:.5rem;margin-top:0}.bulk-update-description{color:var(--text-secondary);font-size:.95rem;margin-bottom:1.5rem}.bulk-update-table-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;margin-bottom:1.5rem;max-height:400px;overflow-y:auto}.bulk-update-table{border-collapse:collapse;width:100%}.bulk-update-table thead{background:var(--bg-tertiary);position:-webkit-sticky;position:sticky;top:0;z-index:10}.bulk-update-table th{border-bottom:2px solid var(--border-color);color:var(--text-primary);font-weight:600;padding:.75rem;text-align:left}.bulk-update-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:.75rem}.bulk-update-table tbody tr{transition:background-color var(--transition-fast)}.bulk-update-table tbody tr:hover{background:var(--bg-hover)}.current-days{color:var(--text-secondary);font-weight:500;text-align:center}.days-input{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);padding:.5rem;text-align:center;transition:border-color var(--transition-fast);width:100px}.days-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1e3c721a;outline:none}.bulk-update-header{align-items:flex-start;border-bottom:2px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.bulk-update-header .close-button{align-items:center;background:#0000;border:none;border-radius:50%;color:var(--text-secondary);cursor:pointer;display:flex;font-size:2rem;height:32px;justify-content:center;transition:all var(--transition-base);width:32px}.bulk-update-header .close-button:hover{background:var(--bg-hover);color:var(--text-primary)}.bulk-update-actions-header{margin-bottom:1.5rem}.action-buttons-group{gap:.75rem}.csv-import-section{background:var(--bg-tertiary);border:2px dashed var(--primary);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.csv-import-section h4{color:var(--primary);margin-bottom:.75rem;margin-top:0}.csv-help-text{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin-bottom:1rem}.csv-textarea{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:Courier New,monospace;font-size:.85rem;margin-bottom:1rem;padding:.75rem;resize:vertical;transition:border-color var(--transition-fast);width:100%}.csv-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1e3c721a;outline:none}.csv-import-actions{display:flex;gap:.75rem}.bulk-update-table tbody tr.row-changed{background:#10b9811a}.bulk-update-table tbody tr.row-changed:hover{background:#10b98126}.edipi-hint{color:var(--text-tertiary);font-size:.85rem;font-weight:400}.bulk-update-actions{align-items:center;border-top:2px solid var(--border-color);display:flex;gap:1rem;justify-content:space-between;padding-top:1rem}.update-summary{flex:1 1}.summary-text{color:var(--primary);font-size:.95rem;font-weight:500}.action-buttons{display:flex;gap:.75rem}.days-badge{border-radius:12px;padding:.25rem .75rem}.bulk-update-profile-modal{align-items:center;animation:fadeIn var(--transition-fast) ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.bulk-update-profile-content{animation:scaleIn var(--transition-base) ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-xl);max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.bulk-update-profile-header{align-items:center;border-bottom:2px solid var(--border-color);display:flex;justify-content:space-between;padding:1.5rem}.bulk-update-profile-header h3{color:var(--text-primary);font-size:1.5rem;margin:0}.bulk-update-profile-info{background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);padding:1rem 1.5rem}.bulk-update-profile-info p{color:var(--primary);margin:0 0 .75rem}.bulk-update-profile-form{padding:1.5rem}.bulk-update-instructions{background:#f59e0b1a;border-left:3px solid var(--warning);border-radius:4px;margin-bottom:1.5rem;padding:.75rem}.bulk-update-instructions p{color:var(--warning);font-size:.875rem;margin:0}.bulk-update-fields{display:flex;flex-direction:column;gap:1.25rem}.bulk-update-field-group{display:flex;flex-direction:column;gap:.5rem}.checkbox-label{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-weight:500;gap:.5rem}.checkbox-label input[type=checkbox]{accent-color:var(--primary);cursor:pointer;height:18px;width:18px}.bulk-update-input,.bulk-update-textarea{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-family:inherit;font-size:1rem;padding:.75rem;transition:all var(--transition-base)}.bulk-update-input:focus,.bulk-update-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1e3c721a;outline:none}.bulk-update-textarea{min-height:80px;resize:vertical}.bulk-update-profile-actions{border-top:2px solid var(--border-color);display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem}.bulk-add-appointment-modal{align-items:center;animation:fadeIn var(--transition-fast) ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.bulk-add-appointment-content{animation:scaleIn var(--transition-base) ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-xl);max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.bulk-add-appointment-header{align-items:center;border-bottom:2px solid var(--border-color);display:flex;justify-content:space-between;padding:1.5rem}.bulk-add-appointment-header h3{color:var(--text-primary);font-size:1.5rem;margin:0}.close-button:hover{background:var(--bg-hover)}.bulk-add-appointment-info{background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);padding:1rem 1.5rem}.bulk-add-appointment-info p{color:var(--primary);margin:0 0 .75rem}.selected-soldiers-preview{display:flex;flex-wrap:wrap;gap:.5rem}.soldier-preview-badge{background:var(--bg-secondary);border:1px solid var(--primary);border-radius:12px;color:var(--primary);font-size:.875rem;padding:.25rem .75rem}.bulk-add-appointment-form{padding:1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block}.required{color:var(--error)}.form-input,.form-textarea{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;box-sizing:border-box;color:var(--text-primary);font-family:inherit;font-size:1rem;padding:.75rem;transition:all var(--transition-base);width:100%}.form-input:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1e3c721a;outline:none}.form-textarea{min-height:80px;resize:vertical}.bulk-add-appointment-actions{border-top:2px solid var(--border-color);display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem}.bulk-create-soldiers-modal{align-items:center;animation:fadeIn var(--transition-fast) ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:20px;position:fixed;right:0;top:0;z-index:1000}.bulk-create-soldiers-content{animation:scaleIn var(--transition-base) ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:90vh;max-width:1200px;width:100%}.bulk-create-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px 24px}.bulk-create-header h3{color:var(--text-primary);font-size:24px;margin:0}.close-button{background:none;border-radius:4px;color:var(--text-secondary);font-size:32px;height:32px;padding:0;transition:all var(--transition-base);width:32px}.close-button:hover{background-color:var(--bg-hover);color:var(--text-primary)}.bulk-create-form{display:flex;flex:1 1;flex-direction:column;overflow:hidden;padding:24px}.common-fields-section{border-bottom:2px solid var(--border-color);margin-bottom:32px;padding-bottom:24px}.common-fields-section h4{color:var(--text-primary);font-size:18px;margin:0 0 16px}.common-fields-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.common-fields-grid .form-group{display:flex;flex-direction:column}.common-fields-grid label{color:var(--text-primary);font-size:14px;font-weight:500;margin-bottom:6px}.common-fields-grid input{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:14px;padding:8px 12px;transition:border-color var(--transition-base)}.common-fields-grid input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1e3c721a;outline:none}.common-fields-grid input.error{border-color:var(--error)}.error-message{color:var(--error);font-size:12px;margin-top:4px}.soldiers-section{display:flex;flex:1 1;flex-direction:column;min-height:0}.soldiers-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.soldiers-section-header h4{color:var(--text-primary);font-size:18px;margin:0}.btn-add-row{background:var(--primary);border:none;border-radius:4px;color:var(--text-inverse);cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all var(--transition-base)}.btn-add-row:hover{background:var(--primary-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.soldiers-table-wrapper{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;flex:1 1;overflow:auto}.bulk-create-table{background:var(--bg-secondary);border-collapse:collapse;width:100%}.bulk-create-table thead{background:var(--bg-tertiary);position:-webkit-sticky;position:sticky;top:0;z-index:10}.bulk-create-table th{border-bottom:2px solid var(--border-color);color:var(--text-primary);font-size:13px;font-weight:600;padding:12px;text-align:left;white-space:nowrap}.bulk-create-table th.actions-col{text-align:center;width:60px}.bulk-create-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:8px 12px}.bulk-create-table tbody tr{transition:background-color var(--transition-fast)}.bulk-create-table tbody tr:hover{background:var(--bg-hover)}.bulk-create-table tbody tr.row-error{background:#ef44441a}.bulk-create-table tbody tr.row-error:hover{background:#ef444426}.bulk-create-table input{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;box-sizing:border-box;color:var(--text-primary);font-size:14px;padding:6px 8px;transition:border-color var(--transition-base);width:100%}.bulk-create-table input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1e3c721a;outline:none}.bulk-create-table input.error{border-color:var(--error)}.bulk-create-table input::placeholder{color:var(--text-tertiary)}.error-message-inline{color:var(--error);display:block;font-size:11px;margin-top:2px}.bulk-create-table td.actions-col{text-align:center;vertical-align:middle}.btn-remove-row{align-items:center;background:var(--error);border:none;border-radius:4px;color:var(--text-inverse);cursor:pointer;display:flex;font-size:20px;height:28px;justify-content:center;padding:0;transition:all var(--transition-base);width:28px}.btn-remove-row:hover:not(:disabled){background:#dc2626;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-remove-row:disabled{background:var(--border-color);cursor:not-allowed;opacity:.6}.form-actions{border-top:1px solid var(--border-color);gap:12px;margin-top:24px;padding-top:24px}@media (max-width:768px){.bulk-create-soldiers-content{border-radius:0;max-height:100vh;max-width:100%}.common-fields-grid{grid-template-columns:1fr}.soldiers-table-wrapper{overflow-x:auto}.bulk-create-table{min-width:800px}}.tooltip-wrapper{display:inline-block;position:relative}.tooltip{animation:tooltipFadeIn .2s ease-out forwards;opacity:0;pointer-events:none;position:absolute;z-index:10000}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.tooltip-content{word-wrap:break-word;background:var(--primary);border-radius:6px;box-shadow:var(--shadow-md);color:var(--text-inverse);font-size:.85rem;line-height:1.4;max-width:300px;padding:.5rem .75rem;white-space:normal}.tooltip-arrow{border-style:solid;height:0;position:absolute;width:0}.tooltip-top{bottom:100%;left:50%;margin-bottom:8px;transform:translateX(-50%)}.tooltip-top .tooltip-arrow{border-color:var(--primary) #0000 #0000 #0000;border-width:6px 6px 0}.tooltip-bottom,.tooltip-top .tooltip-arrow{left:50%;top:100%;transform:translateX(-50%)}.tooltip-bottom{margin-top:8px}.tooltip-bottom .tooltip-arrow{border-color:#0000 #0000 var(--primary) #0000;border-width:0 6px 6px;bottom:100%;left:50%;transform:translateX(-50%)}.tooltip-left{margin-right:8px;right:100%;top:50%;transform:translateY(-50%)}.tooltip-left .tooltip-arrow{border-color:#0000 #0000 #0000 var(--primary);border-width:6px 0 6px 6px}.tooltip-left .tooltip-arrow,.tooltip-right{left:100%;top:50%;transform:translateY(-50%)}.tooltip-right{margin-left:8px}.tooltip-right .tooltip-arrow{border-color:#0000 var(--primary) #0000 #0000;border-width:6px 6px 6px 0;right:100%;top:50%;transform:translateY(-50%)}.soldier-profile-modal{-webkit-overflow-scrolling:touch;align-items:center;animation:fadeIn var(--transition-fast) ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:2rem;position:fixed;right:0;top:0;z-index:2000}@media (max-width:768px){.soldier-profile-modal{align-items:flex-start;padding:2rem 1rem 1rem}}@media (max-width:480px){.soldier-profile-modal{padding:1rem .5rem .5rem}}.soldier-profile-content{-webkit-overflow-scrolling:touch;animation:scaleIn var(--transition-base) ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-xl);max-height:90vh;max-width:800px;overflow-y:auto;width:100%}@media (max-width:768px){.soldier-profile-content{border-radius:8px 8px 0 0;max-height:95vh}}.profile-header{align-items:center;background:var(--primary-gradient);border-bottom:2px solid var(--border-color);color:var(--text-inverse);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:1.5rem}@media (max-width:768px){.profile-header{align-items:flex-start;flex-direction:column;padding:1rem}.profile-header h2{font-size:1.1rem}.profile-header-actions{justify-content:space-between;width:100%}}.profile-header-actions{align-items:center;display:flex;gap:.75rem}.btn-edit-details{-webkit-tap-highlight-color:transparent;background:#fff3;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;touch-action:manipulation;transition:all .2s}.btn-edit-details:hover{background:#ffffff4d;border-color:#fff6}.profile-header h2{color:var(--text-inverse);margin:0}.close-button{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;transition:background .2s;width:40px}.close-button:hover{background:#ffffff4d}.profile-sections{padding:1.5rem}.profile-section{margin-bottom:2rem}.profile-section:last-child{margin-bottom:0}.profile-section h3{color:var(--primary);font-size:1.2rem;margin-bottom:1rem}.section-header,.section-header-left{flex-wrap:wrap;gap:1rem}.section-header-left{align-items:center;display:flex}.select-all-checkbox{color:var(--text-secondary);font-size:.9rem;-webkit-user-select:none;user-select:none}.info-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}@media (max-width:768px){.info-grid{grid-template-columns:1fr}}.info-item{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;padding:.75rem}.info-item strong{color:var(--primary);margin-right:.5rem}.days-since-duty-item{display:flex;flex-direction:column;gap:.5rem}.days-display,.days-edit-controls{align-items:center;display:flex;gap:.5rem}.days-input-inline{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.9rem;padding:.4rem;text-align:center;transition:border-color var(--transition-fast);width:80px}.days-input-inline:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1e3c721a;outline:none}.btn-edit-inline{background:#0000;border:none;cursor:pointer;font-size:1rem;opacity:.6;padding:.25rem;transition:opacity .2s}.btn-edit-inline:hover{opacity:1}.btn-cancel-small,.btn-save-small{border:none;border-radius:4px;cursor:pointer;font-size:.85rem;padding:.4rem .8rem;transition:all .2s}.btn-save-small{background:var(--success);color:var(--text-inverse)}.btn-save-small:hover{background:#22c55e;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-cancel-small{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary)}.btn-cancel-small:hover{background:var(--bg-hover)}.appointment-form-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.appointment-form-card h4{color:var(--primary);margin-bottom:1rem;margin-top:0}.appointments-bulk-actions{align-items:center;background:var(--primary-gradient);border-radius:6px;box-shadow:var(--shadow-sm);color:var(--text-inverse);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem}.appointments-bulk-actions .bulk-actions-info{align-items:center;display:flex;font-weight:500;gap:.5rem}.appointments-bulk-actions .selected-count{background:#ffffff4d;border-radius:4px;font-weight:600;padding:.25rem .5rem}.appointments-bulk-actions .bulk-actions-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.btn-bulk-clear-appointments,.btn-bulk-delete-appointments{border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;padding:.5rem 1rem;transition:all .2s}.btn-bulk-delete-appointments{background:#f44336e6;border:1px solid #f44336}.btn-bulk-delete-appointments:hover{background:#f44336;box-shadow:0 2px 8px #f4433666}.btn-bulk-clear-appointments{background:#fff3;border:1px solid #ffffff4d}.btn-bulk-clear-appointments:hover{background:#ffffff4d}.appointments-list{display:flex;flex-direction:column;gap:1rem}.appointment-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;display:flex;gap:1rem;padding:1rem;transition:all var(--transition-base)}.appointment-card.appointment-selected{background:var(--bg-tertiary);border-color:var(--primary);border-width:2px;box-shadow:var(--shadow-sm)}.appointment-checkbox{align-items:flex-start;display:flex;padding-top:.25rem}.appointment-checkbox input[type=checkbox]{cursor:pointer;height:18px;width:18px}.appointment-content{flex:1 1;min-width:0}.appointment-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.appointment-header strong{color:var(--primary);margin-right:.5rem}.exception-badge{background:#ef444433;border:1px solid var(--error);border-radius:4px;color:var(--error);display:inline-block;font-size:.85rem;font-weight:600;margin-left:.5rem;padding:.2rem .5rem}.appointment-actions{display:flex;gap:.5rem}.appointment-dates{color:var(--text-secondary);font-size:.9rem;margin-bottom:.5rem}.appointment-notes{border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:.85rem;font-style:italic;margin-top:.5rem;padding-top:.5rem}.btn-primary-small,.btn-secondary-small{border:none;border-radius:4px;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .2s}.btn-primary-small{background:#1e3c72;color:#fff}.btn-primary-small:hover{background:#2a5298}.btn-secondary-small{background:#e0e0e0;color:#333}.btn-secondary-small:hover{background:#d0d0d0}.btn-delete-small,.btn-edit-small{border:none;border-radius:4px;cursor:pointer;font-size:.85rem;padding:.4rem .8rem;transition:all .2s}.btn-edit-small{background:#2196f3;color:#fff}.btn-edit-small:hover{background:#1976d2}.empty-state{background:#f9f9f9;border-radius:6px;color:#666}.loading{padding:2rem}@media (max-width:768px){.form-row{grid-template-columns:1fr}}.form-group input,.form-group select,.form-group textarea{font-size:.9rem}.loading-screen{align-items:center;animation:fadeIn var(--transition-fast) ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}[data-theme=light] .loading-screen{background:#fffffff2}[data-theme=dark] .loading-screen{background:#0f172af2}.loading-content{align-items:center;animation:scaleIn var(--transition-base) ease-out;display:flex;flex-direction:column;gap:20px;text-align:center}.spinner{animation:spin 1s linear infinite;border-top:4px solid var(--bg-tertiary);border:4px solid var(--bg-tertiary);border-radius:50%;border-top-color:var(--primary);height:50px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-message{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0}.loading-submessage{color:var(--text-secondary);font-size:1rem;margin:0;max-width:400px}.loading-inline{align-items:center;color:var(--text-secondary);display:inline-flex;gap:10px;padding:10px}.loading-inline .spinner{border-color:var(--bg-tertiary);border-top-color:var(--primary);border-width:2px;height:20px;width:20px}.loading-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;border-radius:4px;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:100}[data-theme=light] .loading-overlay{background:#fffc}[data-theme=dark] .loading-overlay{background:#0f172acc}.loading-overlay .spinner{border-color:var(--bg-tertiary);border-top-color:var(--primary);border-width:3px;height:40px;width:40px}.soldiers-container{animation:fadeIn var(--transition-base) ease-out;box-sizing:border-box;margin:0 auto;max-width:1600px;padding:2rem;width:100%}.soldiers-header{align-items:flex-start;animation:slideIn var(--transition-base) ease-out;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between;margin-bottom:1.5rem}.header-title-section{align-items:center;display:flex;gap:1rem}.soldiers-header h2{color:var(--text-primary);font-size:1.75rem;font-weight:600;margin:0}.soldier-count-badge{background:var(--info);background:linear-gradient(135deg,var(--info) 0,var(--primary) 100%);border-radius:12px;box-shadow:var(--shadow-sm);color:var(--text-inverse);font-size:.875rem;font-weight:500;padding:.375rem .75rem}.header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.search-container{align-items:center;display:flex;position:relative}.search-input{-webkit-appearance:none;appearance:none;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:1rem;min-width:280px;padding:.75rem 2.5rem .75rem 1rem;transition:all var(--transition-base)}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1e3c721a;outline:none}.search-clear{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-tertiary);cursor:pointer;display:flex;font-size:1.5rem;height:28px;justify-content:center;line-height:1;padding:0;position:absolute;right:.5rem;transition:all var(--transition-base);width:28px}.search-clear:hover{background:var(--bg-hover);color:var(--text-primary)}.search-results-info{background:var(--bg-tertiary);border-left:3px solid var(--primary);border-radius:4px;color:var(--primary);font-size:.9rem;margin-bottom:1rem;padding:.75rem 1rem}.limit-warning{background:#f443361a;border:1px solid var(--error);border-radius:6px;color:var(--error);font-size:.875rem;font-weight:500;padding:.5rem .75rem}.bulk-actions-toolbar{align-items:center;animation:slideDown .3s ease-out;background:var(--primary-gradient);border:1px solid var(--primary);border-radius:8px;box-shadow:var(--shadow-md);color:var(--text-inverse);display:flex;gap:1.5rem;justify-content:space-between;margin-bottom:1.5rem;padding:1rem 1.5rem}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.bulk-actions-info{align-items:center;display:flex;font-weight:500;gap:.5rem}.selected-count{background:#ffffff40;border-radius:12px;font-size:1.1rem;font-weight:600;padding:.25rem .75rem}.bulk-actions-buttons{display:flex;flex-wrap:wrap;gap:.75rem}.btn-bulk-action{border:none;border-radius:6px;color:var(--text-inverse);cursor:pointer;font-size:.9rem;font-weight:500;padding:.625rem 1.25rem;transition:all var(--transition-base)}.btn-bulk-days{background:#fff3;border:1px solid #ffffff4d}.btn-bulk-days:hover{background:#ffffff4d}.btn-bulk-profile{background:#2196f3e6;border:1px solid #2196f3}.btn-bulk-profile:hover{background:#2196f3;box-shadow:0 2px 8px #2196f366}.btn-bulk-appointment{background:#4caf50e6;border:1px solid #4caf50}.btn-bulk-appointment:hover{background:#4caf50;box-shadow:0 2px 8px #4caf5066}.btn-bulk-delete{background:#f44336e6;border:1px solid #f44336}.btn-bulk-delete:hover{background:#f44336;box-shadow:0 2px 8px #f4433666}.btn-bulk-clear{background:#ffffff26;border:1px solid #ffffff40}.btn-bulk-clear:hover{background:#ffffff40}.bulk-days-modal{align-items:center;animation:fadeIn var(--transition-fast) ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.bulk-days-content{animation:scaleIn var(--transition-base) ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-xl);max-width:500px;padding:2rem;width:90%}.bulk-days-content h3{color:var(--text-primary);font-size:1.5rem;margin-bottom:.5rem;margin-top:0}.bulk-days-content p{color:var(--text-secondary);font-size:.95rem;margin-bottom:1.5rem}.bulk-days-input-group{margin-bottom:1.5rem}.bulk-days-input-group label{color:var(--text-primary);display:block;font-weight:500;margin-bottom:.5rem}.bulk-days-input{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:1.1rem;padding:.75rem;transition:all var(--transition-base);width:100%}.bulk-days-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1e3c721a;outline:none}.bulk-days-actions{display:flex;gap:1rem;justify-content:flex-end}.soldier-form-modal{align-items:center;animation:fadeIn var(--transition-fast) ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.soldier-form-content{animation:scaleIn var(--transition-base) ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-xl);max-height:90vh;max-width:900px;overflow-y:auto;padding:2rem;width:90%}.soldier-form-content h3{color:var(--text-primary);font-size:1.5rem;margin-bottom:1.5rem;margin-top:0}.form-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.form-group label{font-size:.9rem}.form-group input,.form-group textarea{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:1rem;padding:.75rem;transition:all var(--transition-base)}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1e3c721a;outline:none}.form-actions{justify-content:flex-end;margin-top:1.5rem}.soldiers-list{animation:scaleIn var(--transition-base) ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-md);overflow:hidden;padding:1.5rem}.empty-state{padding:4rem 2rem}.empty-state p{font-size:1.1rem;margin-bottom:1rem}.table-wrapper{-webkit-overflow-scrolling:touch;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;overflow-x:auto;scrollbar-width:thin}.table-wrapper::-webkit-scrollbar{height:8px}.table-wrapper::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--primary)}.soldiers-table{background:var(--bg-secondary);border-collapse:collapse;min-width:1000px;width:100%}.soldiers-table thead{background:var(--bg-tertiary);position:-webkit-sticky;position:sticky;top:0;z-index:10}.soldiers-table th{border-bottom:2px solid var(--border-color);color:var(--text-primary);font-size:.9rem;font-weight:600;letter-spacing:.5px;padding:1rem;text-align:left;text-transform:uppercase}.checkbox-column{text-align:center;width:50px}.actions-column{min-width:150px;text-align:right;width:180px}.soldiers-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:1rem;vertical-align:middle}.soldiers-table tbody tr{transition:all var(--transition-base)}.soldiers-table tbody tr:hover{background:var(--bg-hover)}.soldiers-table tbody tr.row-selected{background:var(--bg-tertiary);border-left:3px solid var(--primary)}.soldiers-table tbody tr.row-selected:hover{background:var(--bg-hover)}.checkbox-input{accent-color:var(--primary);cursor:pointer;height:20px;min-height:20px;min-width:20px;touch-action:manipulation;width:20px}.soldiers-table tbody tr td.name-cell{background:#0000!important;border-right:none!important;color:var(--text-primary)!important;padding:1rem!important}.soldiers-table tbody tr td.name-cell button.soldier-name-link{background:#0000!important;border:none!important;box-shadow:none!important;color:var(--primary)!important;cursor:pointer!important;display:inline-block!important;font-family:inherit!important;font-size:inherit!important;font-weight:500!important;height:auto!important;line-height:1.5!important;margin:0!important;padding:0!important;text-align:left!important;text-decoration:none!important;transition:all var(--transition-base)!important;vertical-align:initial!important;width:auto!important}.soldiers-table .name-cell button.soldier-name-link:hover{background:#0000!important;color:var(--primary-hover)!important;text-decoration:underline!important;transform:none!important}.soldiers-table .name-cell button.soldier-name-link:focus{background:#0000!important;border-radius:2px!important;outline:2px solid var(--primary)!important;outline-offset:2px!important}.soldier-name{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.soldier-name-link{background:none!important;border:none!important;color:var(--primary)!important;cursor:pointer!important;display:inline-block!important;font-family:inherit!important;font-size:inherit!important;font-weight:500!important;line-height:1.5!important;margin:0!important;padding:0!important;text-align:left!important;text-decoration:none!important;transition:all var(--transition-base)!important;vertical-align:initial!important}.soldier-name-link:hover{color:var(--primary-hover)!important;text-decoration:underline!important}.soldier-name-link:focus{border-radius:2px!important;outline:2px solid var(--primary)!important;outline-offset:2px!important}.soldier-rank-link{font-weight:600!important;margin-right:.25rem;min-width:50px}.soldier-full-name{color:var(--text-primary)}.empty-field{color:var(--text-tertiary);font-style:italic}.days-badge{border-radius:16px;padding:.375rem .875rem;white-space:nowrap}.action-buttons-group{display:flex;flex-wrap:nowrap;gap:.5rem;justify-content:flex-end}.btn-action{-webkit-tap-highlight-color:transparent;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;min-width:70px;padding:.5rem 1rem;touch-action:manipulation;transition:all var(--transition-base);white-space:nowrap}.btn-edit{background:var(--info);color:var(--text-inverse)}.btn-edit:hover{background:var(--primary);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.btn-delete{background:var(--error);color:var(--text-inverse)}.btn-delete:hover{background:#dc2626;box-shadow:var(--shadow-sm);transform:translateY(-2px)}.field-help{color:var(--text-secondary);display:block;font-size:.85rem;font-style:italic;margin-top:.25rem}@media (max-width:1024px){.soldiers-table{min-width:900px}.soldiers-header h2{font-size:1.5rem}}@media (max-width:768px){.soldiers-container{padding:1rem}.soldiers-header{align-items:stretch;flex-direction:column;gap:1rem}.header-title-section{flex-wrap:wrap}.soldiers-header h2{font-size:1.25rem}.header-actions{flex-direction:column;gap:.75rem;width:100%}.search-container{width:100%}.search-input{min-width:100%;width:100%}.bulk-actions-toolbar{align-items:stretch;flex-direction:column;gap:1rem;padding:1rem}.bulk-actions-info{justify-content:center}.bulk-actions-buttons{flex-direction:column;width:100%}.btn-bulk-action{width:100%}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.soldiers-table{font-size:.875rem;min-width:800px}.soldiers-table td,.soldiers-table th{padding:.75rem .5rem}.action-buttons-group{flex-direction:row;flex-wrap:nowrap;gap:.375rem}.btn-action{font-size:.8rem;padding:.4rem .75rem;white-space:nowrap}.soldier-form-content{max-width:95%;padding:1.5rem}.form-row{grid-template-columns:1fr}.bulk-days-content{max-width:95%;padding:1.5rem}}@media (max-width:480px){.soldiers-container{padding:.75rem}.soldiers-header h2{font-size:1.1rem}.soldier-count-badge{font-size:.75rem;padding:.25rem .5rem}.soldiers-table{font-size:.8rem;min-width:700px}.soldiers-table td,.soldiers-table th{padding:.5rem .375rem}.btn-action{font-size:.75rem;padding:.35rem .5rem}.soldier-name{align-items:flex-start;flex-direction:column;gap:.25rem}.soldier-rank{min-width:auto}}.forms-list-container{animation:fadeIn var(--transition-base) ease-out;margin:0 auto;max-width:1400px;padding:2rem}.forms-header{align-items:center;animation:slideIn var(--transition-base) ease-out;display:flex;justify-content:space-between;margin-bottom:2rem}.forms-header h2{color:var(--text-primary);font-size:1.75rem;margin:0}.forms-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.form-card{animation:scaleIn var(--transition-base) ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-md);padding:1.5rem;transition:all var(--transition-base)}.form-card:hover{border-color:var(--primary);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.form-card-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:1rem}.form-card-header h3{color:var(--primary);font-size:1.2rem;margin:0}.status-badge{border-radius:12px;font-size:.85rem;font-weight:500;padding:.25rem .75rem;text-transform:capitalize}.status-pending{background:#f59e0b33;border:1px solid var(--warning);color:var(--warning)}.status-in_progress{background:#3b82f633}.status-ended,.status-in_progress{border:1px solid var(--info);color:var(--info)}.status-ended{background:#3b82f626}.status-complete{background:#10b98133;border:1px solid var(--success);color:var(--success)}.status-cancelled{background:#ef444433;border:1px solid var(--error);color:var(--error)}.status-completed{background:#10b98133;border:1px solid var(--success);color:var(--success)}.status-submitted{background:#3b82f633;border:1px solid var(--info);color:var(--info)}.form-card-body{margin-bottom:1rem}.form-card-body p{color:var(--text-secondary);font-size:.9rem;margin:.5rem 0}.form-card-actions{border-top:1px solid var(--border-color);display:flex;gap:.5rem;padding-top:1rem}.empty-state{background:var(--bg-secondary);padding:3rem}.da6-form-container{animation:fadeIn var(--transition-base) ease-out;margin:0 auto;max-width:1200px;padding:2rem}.form-header{align-items:center;animation:slideIn var(--transition-base) ease-out;border-bottom:2px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.form-header h2{color:var(--text-primary);font-size:1.75rem;margin:0}.form-content{animation:scaleIn var(--transition-base) ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-md);padding:2rem}.form-section{margin-bottom:2rem}.form-section:last-child{margin-bottom:0}.form-section h3{color:var(--primary);font-size:1.3rem}.form-row,.form-section h3,.section-header{margin-bottom:1rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.form-group{display:flex;flex-direction:column}.form-group label{color:var(--text-primary);font-weight:500;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-family:inherit;font-size:1rem;padding:.5rem;transition:border-color var(--transition-fast)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1e3c721a;outline:none}.assignments-list{display:flex;flex-direction:column;gap:1rem}.assignment-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;transition:all var(--transition-base)}.assignment-card:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.assignment-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.5rem}.assignment-header h4{color:var(--primary);font-size:1.1rem;margin:0}.btn-delete-small{background:#f44336;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.85rem;padding:.4rem .8rem;transition:background .2s}.btn-delete-small:hover{background:#d32f2f}.empty-state{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px}.loading{color:var(--text-secondary);padding:3rem;text-align:center}.section-description{font-size:.95rem;margin-bottom:1.5rem}.soldiers-selection-grid{background:#f9f9f9;border-radius:6px;display:flex;flex-direction:column;gap:.5rem;max-height:500px;overflow-y:auto;padding:1rem}.soldier-selection-item{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:4px;display:flex;justify-content:space-between;padding:.75rem;transition:all .2s}.soldier-selection-item:hover{background:#f5f5f5;border-color:#1e3c72}.soldier-item-actions{align-items:center;display:flex;gap:.5rem}.appointments-badge{align-items:center;background:#e3f2fd;border-radius:12px;color:#1976d2;display:inline-flex;font-size:.85rem;font-weight:500;gap:.25rem;padding:.25rem .5rem}.unavailable-badge{cursor:help;font-size:1.2rem}.btn-profile{background:#1e3c72;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.85rem;padding:.4rem .8rem;transition:background .2s}.btn-profile:hover{background:#2a5298}.select-all-checkbox{align-items:center;background:#e3f2fd;border-radius:6px;color:#1e3c72;cursor:pointer;display:flex;font-weight:500;gap:.5rem;padding:.5rem 1rem}.select-all-checkbox input[type=checkbox]{cursor:pointer;height:18px;width:18px}.soldier-checkbox-item{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:4px;cursor:pointer;display:flex;gap:.75rem;padding:.75rem;transition:all .2s}.soldier-checkbox-item:hover{background:#f0f0f0;border-color:#1e3c72}.soldier-checkbox-item input[type=checkbox]{cursor:pointer;height:18px;width:18px}.soldier-label{color:#333;flex:1 1;font-size:.95rem}.exception-codes-reference{background:#e3f2fd;border:1px solid #90caf9;border-radius:6px;margin-bottom:1.5rem;padding:1rem}.exception-codes-reference h4{color:#1e3c72;font-size:1rem;margin-bottom:.75rem;margin-top:0}.exception-codes-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.exception-code-item{color:#333;font-size:.85rem}.exception-code-item strong{color:#1e3c72;margin-right:.25rem}.exceptions-table-container{border:1px solid #ddd;border-radius:6px;max-height:600px;overflow-x:auto;overflow-y:auto}.exceptions-table{background:#fff;border-collapse:collapse;font-size:.85rem;width:100%}.exceptions-table thead{background:#1e3c72;color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:10}.exceptions-table th{border:1px solid #2a5298;font-weight:600;min-width:50px;padding:.5rem;text-align:center}.exceptions-table th:first-child{background:#1e3c72;left:0;min-width:200px;position:-webkit-sticky;position:sticky;text-align:left;z-index:11}.weekend-header{background:#fff9e6!important;color:#856404!important}.soldier-name-cell{background:#f5f5f5;border-right:2px solid #ddd;font-weight:500;left:0;padding:.5rem;position:-webkit-sticky;position:sticky;white-space:nowrap;z-index:5}.exceptions-table td{border:1px solid #e0e0e0;padding:.25rem;text-align:center}.weekend-cell{background:#fff9e6}.exception-select{background:#fff;border:1px solid #ddd;border-radius:3px;cursor:pointer;font-size:.8rem;padding:.25rem;width:100%}.exception-select:focus{border-color:#1e3c72;box-shadow:0 0 0 2px #1e3c721a;outline:none}.exception-select option{padding:.25rem}.cross-roster-exception{background:#fff3cd!important}.exception-select.cross-roster{background:#fff3cd;border-color:#ffc107;font-weight:500}.form-section-subsection{border-top:1px solid #e0e0e0;margin-top:1.5rem;padding-top:1.5rem}.form-section-subsection h4{color:#1e3c72;font-size:1.1rem;margin-bottom:.5rem}.form-section-subsection h5{color:#1e3c72;font-size:.95rem;font-weight:600;margin-bottom:.75rem}.rank-requirements-table-container{border:1px solid #ddd;border-radius:6px;max-height:500px;overflow-x:auto;overflow-y:auto}.rank-requirements-table{background:#fff;border-collapse:collapse;font-size:.9rem;width:100%}.rank-requirements-table thead{background:#1e3c72;color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:10}.rank-requirements-table th{border:1px solid #2a5298;font-weight:600;padding:.75rem;text-align:left}.rank-requirements-table tbody tr{border-bottom:1px solid #e0e0e0}.rank-requirements-table tbody tr:hover{background:#f5f5f5}.rank-category-header{background:#e3f2fd!important;font-weight:600}.rank-category-header td{border-bottom:2px solid #90caf9;color:#1e3c72;padding:.75rem}.rank-code-cell{padding:.5rem .75rem;text-align:center;width:80px}.rank-name-cell{color:#333;padding:.5rem .75rem}.rank-quantity-cell{padding:.5rem .75rem;width:120px}.rank-quantity-input{border:1px solid #ddd;border-radius:4px;font-size:.9rem;padding:.5rem;text-align:center;width:100%}.rank-quantity-input:focus{border-color:#1e3c72;box-shadow:0 0 0 2px #1e3c721a;outline:none}.rank-requirements-list{margin-bottom:2rem}.rank-requirements-list h5{color:var(--primary);font-size:1rem;margin-bottom:1rem}.rank-requirement-item{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:1rem;padding:1rem;transition:all var(--transition-base)}.rank-requirement-item:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.requirement-main{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem}.requirement-quantity{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);padding:.5rem;text-align:center;transition:border-color var(--transition-fast);width:60px}.requirement-quantity:focus{border-color:var(--primary);outline:none}.requirement-label{color:var(--text-secondary);font-weight:500}.requirement-group-select,.requirement-range-select{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.9rem;padding:.5rem;transition:border-color var(--transition-fast)}.requirement-group-select:focus,.requirement-range-select:focus{border-color:var(--primary);outline:none}.requirement-preferences{border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:.5rem;padding-top:.75rem}.requirement-preferences label{color:var(--text-secondary);display:flex;flex-direction:column;font-size:.85rem;gap:.25rem}.fallback-ranks-input,.preferred-ranks-input{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.9rem;padding:.5rem;transition:border-color var(--transition-fast)}.fallback-ranks-input:focus,.preferred-ranks-input:focus{border-color:var(--primary);outline:none}.rank-exclusions{border-top:1px solid var(--border-color);margin-top:2rem;padding-top:1.5rem}.rank-exclusions h5{color:var(--primary);font-size:1rem;margin-bottom:.5rem}.exclusions-section{display:flex;flex-direction:column;gap:1rem}.exclusion-groups{display:flex;flex-direction:column;gap:.5rem}.exclusion-groups>label:first-child{color:var(--text-primary);font-weight:600;margin-bottom:.5rem}.exclusion-checkbox{align-items:center;cursor:pointer;display:flex;gap:.5rem}.exclusion-checkbox input[type=checkbox]{cursor:pointer;height:18px;width:18px}.exclusion-ranks{display:flex;flex-direction:column;gap:.5rem}.exclusion-ranks label{color:#333;display:flex;flex-direction:column;font-weight:500;gap:.25rem}.excluded-ranks-input{border:1px solid #ddd;border-radius:4px;font-size:.9rem;padding:.5rem}.error-message{background-color:#ffebee;border:1px solid #ef5350;border-radius:4px;color:#c62828;margin-bottom:1rem;padding:1rem}.da6-form-view{animation:fadeIn var(--transition-base) ease-out;background:var(--bg-primary);margin:0 auto;max-width:100%;min-height:calc(100vh - 80px);padding:2rem}.form-view-header{align-items:center;animation:slideIn var(--transition-base) ease-out;border-bottom:3px solid var(--primary);display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.form-view-header h1{color:var(--text-primary);font-size:2rem;font-weight:700;margin:0}.form-actions-header{display:flex;gap:1rem}.form-actions-header button.active{background:var(--primary);border-color:var(--primary);color:var(--text-inverse)}.roster-info{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:2rem;padding:1rem}.info-row{display:flex;justify-content:space-between;margin-bottom:.5rem}.info-row:last-child{margin-bottom:0}.info-row span{color:var(--text-primary);font-size:.95rem}.roster-container{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;margin-bottom:2rem;overflow-x:auto}.roster-table-wrapper{min-width:100%}.roster-table{background:var(--bg-secondary);border-collapse:collapse;font-size:.85rem;width:100%}.roster-table thead{background:var(--primary);color:var(--text-inverse);position:-webkit-sticky;position:sticky;top:0;z-index:10}.roster-table th{border:1px solid var(--primary-hover);color:var(--text-inverse);font-weight:600;min-width:40px;padding:.5rem;text-align:center}.grade-col{width:80px}.grade-col,.name-col{background:var(--primary-hover)}.name-col{text-align:left!important;width:200px}.days-col{background:var(--primary-hover);text-align:center!important;width:120px}.date-col{padding:.25rem!important;width:35px}.date-header{align-items:center;display:flex;flex-direction:column}.month-label{font-size:.7rem;font-weight:700;margin-bottom:2px}.day-number{font-size:.85rem}.roster-table tbody tr{border-bottom:1px solid var(--border-color);transition:background-color var(--transition-fast)}.roster-table tbody tr:hover{background:var(--bg-hover)}.grade-cell{background:var(--bg-tertiary);border-right:2px solid var(--border-color);color:var(--primary);font-weight:600;text-align:center;vertical-align:middle}.name-cell{font-weight:500;white-space:nowrap}.days-cell,.name-cell{background:var(--bg-tertiary);border-right:2px solid var(--border-color);color:var(--text-primary);padding:.5rem}.days-cell{text-align:center;vertical-align:middle}.days-badge{border-radius:4px;display:inline-block;font-size:.85rem;font-weight:600;padding:.25rem .5rem}.days-badge.low{background:#10b98133;border:1px solid var(--success);color:var(--success)}.days-badge.medium{background:#f59e0b33;border:1px solid var(--warning);color:var(--warning)}.days-badge.high{background:#ef444433;border:1px solid var(--error);color:var(--error)}.assignment-cell{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:.85rem;font-weight:500;height:35px;min-width:35px;padding:.25rem;position:relative;text-align:center;vertical-align:middle}.cell-content-wrapper{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;position:relative;width:100%}.cell-main-content{font-size:.9rem;font-weight:600;line-height:1}.cell-days-indicator{color:var(--text-secondary);font-size:.65rem;font-weight:400;line-height:1;margin-top:2px;opacity:.7}.assignment-cell.weekend{background:#f59e0b1a}.assignment-cell.assigned,.assignment-cell.duty-cell{background:#3b82f633;border-color:var(--primary);color:var(--primary);font-weight:600}.assignment-cell.exception,.assignment-cell.exception-cell{background:#ef444433;border-color:var(--error);color:var(--error);font-weight:600}.assignment-cell.cross-roster-duty{background:#ef44444d;border-color:var(--error);border-width:2px;color:var(--error);font-weight:700}.assignment-cell.pass-cell,.assignment-cell.pass-cell.pass-from-this-form{background:#10b98133;border-color:var(--success);color:var(--success);font-weight:600}.assignment-cell.other-appointment,.assignment-cell.pass-cell.pass-other-appointment{background:#eab30833;border-color:#eab308;color:#a16207;font-weight:600}.assignment-cell[title]:not([title=""]){cursor:help;position:relative}.assignment-cell:hover:after{word-wrap:break-word;background-color:#000000e6;border-radius:4px;box-shadow:0 2px 8px #0000004d;color:#fff;content:attr(title);font-size:.75rem;margin-bottom:5px;max-width:300px;padding:.5rem .75rem;white-space:normal;z-index:1000}.assignment-cell:hover:after,.assignment-cell:hover:before{bottom:100%;left:50%;pointer-events:none;position:absolute;transform:translateX(-50%)}.assignment-cell:hover:before{border:5px solid #0000;border-top-color:#000000e6;content:"";margin-bottom:-5px;z-index:1001}.assignment-mark{color:var(--primary);display:inline-block;font-size:.9rem}.assignment-cell.exception .assignment-mark{color:var(--error)}.form-footer{align-items:center;border-top:2px solid var(--border-color);display:flex;justify-content:space-between;padding-top:1rem}.status-badge-large{border-radius:6px;font-weight:600;padding:.5rem 1rem;text-transform:uppercase}.status-badge-large.status-pending{background:#f59e0b33;border:1px solid var(--warning);color:var(--warning)}.status-badge-large.status-in_progress{background:#3b82f633;border:1px solid var(--info);color:var(--info)}.status-badge-large.status-ended{background:#3b82f626;border:1px solid var(--info);color:var(--info)}.status-badge-large.status-draft{background:#f59e0b33;border:1px solid var(--warning);color:var(--warning)}.status-badge-large.status-completed{background:#10b98133;border:1px solid var(--success);color:var(--success)}.status-badge-large.status-submitted{background:#3b82f633;border:1px solid var(--info);color:var(--info)}.form-meta{display:flex;font-size:.9rem;gap:1.5rem}.error,.form-meta,.loading{color:var(--text-secondary)}.error,.loading{padding:3rem;text-align:center}.error{color:var(--error)}.compact-list-container{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;margin-bottom:2rem;overflow-x:auto}.compact-list-table{background:var(--bg-secondary);border-collapse:collapse;font-size:.9rem;width:100%}.compact-list-table thead{background:var(--primary);color:var(--text-inverse)}.compact-list-table th{border:1px solid var(--primary-hover);color:var(--text-inverse);font-weight:600;padding:.75rem 1rem;text-align:left}.compact-list-table tbody tr{border-bottom:1px solid var(--border-color);transition:background-color var(--transition-fast)}.compact-list-table tbody tr:hover{background:var(--bg-hover)}.compact-list-table td{border:1px solid var(--border-color);color:var(--text-primary);padding:.75rem 1rem}.compact-date{font-weight:500;white-space:nowrap}.compact-duty{color:var(--text-primary);font-weight:500}.compact-soldiers{color:var(--text-secondary)}@media print{.form-actions-header,.form-footer,.form-view-header{display:none}.compact-list-container,.roster-container{border:none;overflow:visible}.roster-table{font-size:.75rem}.assignment-cell{height:30px}.compact-list-table{font-size:.8rem}.compact-list-table td,.compact-list-table th{padding:.5rem}.compact-list-table tbody tr{page-break-inside:avoid}}.master-roster{animation:fadeIn var(--transition-base) ease-out;max-width:100%;overflow-x:auto;padding:20px}.master-roster-header{align-items:center;animation:slideIn var(--transition-base) ease-out;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:20px}.master-roster-header h1{color:var(--text-primary);margin:0}.master-roster-actions{display:flex;flex-wrap:wrap;gap:10px}.btn-view-mode{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);cursor:pointer;font-size:14px;padding:8px 16px;transition:all var(--transition-base)}.btn-view-mode:hover{background-color:var(--bg-hover)}.btn-view-mode.active{background-color:var(--primary);border-color:var(--primary);color:var(--text-inverse)}.master-roster-info{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);margin-bottom:20px;padding:15px}.period-info{margin-bottom:15px}.period-info p{color:var(--text-primary);font-size:16px;margin:5px 0}.forms-list h3{color:var(--primary);margin-bottom:10px;margin-top:0}.forms-list ul{list-style:none;margin:0;padding:0}.forms-list li{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);margin:5px 0;padding:8px}.form-list-item,.forms-list li{align-items:center;display:flex;justify-content:space-between}.form-list-item-content{align-items:center;display:flex;gap:10px}.duty-color-indicator{border:2px solid;border-radius:4px;display:inline-block;font-size:11px;font-weight:600;min-width:50px;padding:4px 8px;text-align:center}.btn-link{background:none;border:none;color:var(--primary);cursor:pointer;margin-left:10px;padding:0;text-decoration:underline;transition:color var(--transition-base)}.btn-link:hover{color:var(--primary-hover)}.master-roster-table-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin-top:20px;overflow-x:auto}.master-roster-table{background-color:var(--bg-secondary);border-collapse:collapse;box-shadow:var(--shadow-sm);width:100%}.master-roster-table thead{background-color:var(--primary);color:var(--text-inverse)}.master-roster-table th{border:1px solid var(--primary-hover);color:var(--text-inverse);font-weight:700;padding:12px 8px;text-align:left;white-space:nowrap}.master-roster-table th.weekend-header{background-color:var(--info)}.master-roster-table th.holiday-header{background-color:var(--error)}.master-roster-table td{border:1px solid var(--border-color);color:var(--text-primary);padding:8px;vertical-align:top}.master-roster-table td.grade-cell{background-color:var(--bg-tertiary);font-weight:700}.master-roster-table td.name-cell{font-weight:500;white-space:nowrap}.master-roster-table td.weekend-cell{background-color:#3b82f61a}.master-roster-table td.holiday-cell{background-color:#ef44441a}.master-duty-assignments{display:flex;flex-direction:column;gap:4px}.master-duty-item{align-items:center;border-radius:3px;display:flex;font-size:12px;gap:4px;padding:2px 4px}.master-duty-item,.master-duty-item[data-tooltip]:not([data-tooltip=""]){cursor:help;position:relative}.master-duty-item[data-tooltip]:not([data-tooltip=""]):hover:after{word-wrap:break-word;background-color:#000000e6;border-radius:4px;bottom:100%;box-shadow:0 2px 8px #0000004d;color:#fff;content:attr(data-tooltip);font-size:.75rem;left:50%;margin-bottom:5px;max-width:300px;padding:.5rem .75rem;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:normal;z-index:1000}.master-duty-item[data-tooltip]:not([data-tooltip=""]):hover:before{border:5px solid #0000;border-top-color:#000000e6;bottom:100%;content:"";left:50%;margin-bottom:-5px;pointer-events:none;position:absolute;transform:translateX(-50%);z-index:1001}.master-duty-item.duty{background-color:#10b98133;border:1px solid var(--success);color:var(--success)}.master-duty-item.exception{background-color:#f59e0b33;border:1px solid var(--warning);color:var(--warning)}.master-duty-item.exception-cq{background-color:#ef444433;border:1px solid var(--error);color:var(--error)}.master-duty-item.exception-sd{background-color:#3b82f633;border:1px solid var(--info);color:var(--info)}.master-duty-item.exception-p{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary)}.duty-checkmark{color:var(--success);font-weight:700}.exception-code{color:var(--warning);font-weight:700}.form-indicator{font-size:10px;font-style:italic}.form-indicator,.no-duty{color:var(--text-tertiary)}.master-roster-compact{display:flex;flex-direction:column;gap:15px}.compact-soldier-entry{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:15px}.compact-soldier-header{border-bottom:2px solid var(--primary);color:var(--text-primary);font-size:16px;margin-bottom:10px;padding-bottom:8px}.compact-assignments{display:flex;flex-direction:column;gap:8px}.compact-date-entry{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.compact-date{color:var(--primary);font-weight:700;min-width:80px}.compact-assignment{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:3px;color:var(--text-primary);font-size:14px;padding:4px 8px}@media print{.master-roster-actions{display:none}.master-roster-info{page-break-inside:avoid}.master-roster-table{page-break-inside:auto}.master-roster-table tr{page-break-after:auto;page-break-inside:avoid}}.settings-container{animation:fadeIn var(--transition-base) ease-out;margin:0 auto;max-width:1200px;padding:2rem}.settings-header{animation:slideIn var(--transition-base) ease-out;margin-bottom:2rem}.settings-header h2{color:var(--text-primary);font-size:2rem;margin:0}.settings-section{animation:scaleIn var(--transition-base) ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-md);margin-bottom:2rem;padding:2rem;transition:all var(--transition-base)}.settings-section:hover{box-shadow:var(--shadow-lg)}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.section-header h3{color:var(--text-primary);font-size:1.5rem;margin:0}.section-description{color:var(--text-secondary);font-size:.9rem;margin:.5rem 0}.federal-holidays-section{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:2rem;padding:1.5rem}.federal-holidays-section h4{color:var(--text-primary);margin-top:0}.holiday-form{animation:slideIn var(--transition-base) ease-out;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.holiday-form h4{color:var(--text-primary);margin-top:0}.holidays-list{margin-top:1.5rem}.holidays-table{border-collapse:collapse;border-radius:8px;margin-top:1rem;overflow:hidden;width:100%}.holidays-table td,.holidays-table th{border-bottom:1px solid var(--border-color);padding:.75rem;text-align:left}.holidays-table th{background-color:var(--bg-tertiary);color:var(--text-primary);font-weight:600}.holidays-table tr{transition:background-color var(--transition-fast)}.holidays-table tr:hover{background-color:var(--bg-hover)}.holidays-table input[type=date],.holidays-table input[type=text]{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.9rem;padding:.5rem;transition:border-color var(--transition-fast);width:100%}.holidays-table input:focus{border-color:var(--primary);outline:none}.empty-state{color:var(--text-secondary);padding:2rem;text-align:center}.empty-state p{margin:0}.form-actions{display:flex;gap:1rem;margin-top:1rem}.project-info-section{animation:scaleIn var(--transition-base) ease-out;background:linear-gradient(135deg,var(--bg-tertiary) 0,var(--bg-primary) 100%);border:2px solid var(--primary)}.project-info-content{padding:.5rem 0}.project-status{animation:slideIn var(--transition-base) ease-out;background:var(--bg-secondary);border-left:4px solid var(--primary);border-radius:8px;margin-bottom:2rem;padding:1.5rem}.status-badge{animation:pulse 2s ease-in-out infinite;border-radius:20px;display:inline-block;font-size:.9rem;font-weight:600;margin-bottom:1rem;padding:.5rem 1rem}.status-badge.live{background:var(--success);color:#fff}.project-description{color:var(--text-primary);font-size:1.05rem;line-height:1.6;margin:0}.project-details-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:1.5rem}.project-detail-card{animation:fadeIn var(--transition-base) ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;transition:all var(--transition-base)}.project-detail-card:first-child{animation-delay:.1s}.project-detail-card:nth-child(2){animation-delay:.2s}.project-detail-card:nth-child(3){animation-delay:.3s}.project-detail-card:nth-child(4){animation-delay:.4s}.project-detail-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-4px)}.project-detail-card h4{color:var(--primary);font-size:1.1rem;margin-bottom:1rem;margin-top:0}.project-link{color:var(--primary);display:inline-block;font-weight:500;margin-top:.5rem;text-decoration:none;transition:all var(--transition-fast)}.project-link:hover{color:var(--primary-hover);text-decoration:underline;transform:translateX(4px)}.features-list,.tech-list,.updates-list{color:var(--text-secondary);line-height:1.8;list-style:none;margin:0;padding:0}.features-list li,.tech-list li,.updates-list li{margin-bottom:.5rem;padding-left:0}.features-list li strong,.tech-list li strong,.updates-list li strong{color:var(--text-primary)}.help-section{animation:scaleIn var(--transition-base) ease-out;background:linear-gradient(135deg,var(--bg-tertiary) 0,var(--bg-primary) 100%);border:2px solid var(--primary)}.help-content{padding:.5rem 0}.help-intro{animation:slideIn var(--transition-base) ease-out;background:var(--bg-secondary);border-left:4px solid var(--primary);border-radius:8px;margin-bottom:2rem;padding:1rem}.help-intro-text{color:var(--text-primary);font-size:1.05rem;line-height:1.6;margin:0}.help-sections{display:flex;flex-direction:column;gap:1.5rem}.help-subsection{animation:fadeIn var(--transition-base) ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-sm);padding:1.5rem;transition:all var(--transition-base)}.help-subsection:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateX(4px)}.help-subsection h4{align-items:center;color:var(--primary);display:flex;font-size:1.1rem;gap:.5rem;margin-bottom:1rem;margin-top:0}.help-list{color:var(--text-secondary);line-height:1.8;margin:.5rem 0;padding-left:1.5rem}.help-list li{margin-bottom:.75rem;transition:transform var(--transition-fast)}.help-list li:hover{transform:translateX(4px)}.help-list li strong{color:var(--primary)}.help-contact{margin-top:1rem}.contact-links{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.contact-link{align-items:center;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);display:flex;gap:1rem;padding:1rem;text-decoration:none;transition:all var(--transition-base)}.contact-link:hover{background:var(--bg-hover);border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateX(8px)}.contact-icon{flex-shrink:0;font-size:2rem;transition:transform var(--transition-base)}.contact-link:hover .contact-icon{transform:scale(1.1) rotate(5deg)}.contact-link div{display:flex;flex-direction:column;gap:.25rem}.contact-link strong{color:var(--primary);font-size:1rem}.contact-detail{color:var(--text-secondary);font-size:.9rem}.setup-required{align-items:center;animation:fadeIn var(--transition-base) ease-out;background:var(--primary-gradient);display:flex;justify-content:center;min-height:100vh;padding:2rem}.setup-card{animation:scaleIn var(--transition-base) ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-xl);max-width:700px;padding:3rem;width:100%}.setup-card h1{color:var(--error);font-size:2rem;margin-bottom:1rem}.setup-message{color:var(--text-secondary);font-size:1.1rem;line-height:1.6;margin-bottom:2rem}.setup-instructions{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;margin-top:1.5rem;padding:1.5rem}.setup-instructions h2{color:var(--primary);font-size:1.3rem;margin-bottom:1rem}.setup-instructions ol{color:var(--text-primary);line-height:1.8;margin-left:1.5rem}.setup-instructions li{margin-bottom:1rem}.setup-instructions code{background:var(--bg-hover);border-radius:4px;color:var(--text-primary);font-family:Courier New,monospace;font-size:.9em;padding:2px 6px}.setup-instructions pre{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:.9rem;margin:.5rem 0;overflow-x:auto;padding:1rem}.setup-note{background:var(--bg-tertiary);border-left:4px solid var(--info);border-radius:4px;color:var(--info);margin-top:1.5rem;padding:1rem}.setup-note code{background:#fff3;border-radius:4px;padding:2px 6px}.loading-container{align-items:center;animation:fadeIn var(--transition-base) ease-out;background:var(--primary-gradient);display:flex;justify-content:center;min-height:100vh}.loading-spinner{animation:pulse 2s ease-in-out infinite;color:var(--text-inverse);font-size:1.2rem}
/*# sourceMappingURL=main.60eedc7a.css.map*/