.nav{position:fixed;top:0;left:0;display:flex;flex-direction:column;width:200px;height:100vh;box-sizing:border-box;padding:1.5rem 1rem;border-right:1px solid #e0e0e0;overflow-y:auto}.logo{display:block;width:48px;height:auto;margin:0 auto 1.5rem}.logo-link{display:block}.nav-list{list-style:none;margin:0;padding:0}.nav-list a{display:block;padding:.5rem .75rem;border-radius:4px;color:#317546;text-decoration:none}.nav-list a:hover,.nav-list a.active{background:#317546;color:#fff}.logout{margin-top:auto;padding:.5rem .75rem;border:1px solid #317546;background:#fff;color:#317546;border-radius:4px;cursor:pointer}.logout:hover{background:#317546;color:#fff}.table-view{flex:1;display:flex;flex-direction:column;min-height:0}.table-wrapper{flex:1;min-height:0;overflow:auto}table{border-collapse:collapse;width:100%}th,td{border:1px solid #e0e0e0;padding:.5rem .75rem;text-align:left;white-space:nowrap}th{position:sticky;top:0;z-index:2;background:#f0f5f1;color:#317546;box-shadow:inset 0 -1px #e0e0e0}.th-content{display:inline-flex;align-items:center;gap:.4rem}.col-btn{border:none;background:none;color:inherit;cursor:pointer;font-size:.75rem;line-height:1;padding:0;opacity:0}th:hover .col-btn,th.open .col-btn,.col-btn.active{opacity:1}.filter-panel{position:absolute;top:100%;left:0;z-index:10;display:flex;flex-direction:column;gap:.4rem;margin-top:2px;padding:.5rem;background:#fff;border:1px solid #e0e0e0;border-radius:4px;box-shadow:0 2px 6px #00000026}.filter-row{display:flex;gap:.4rem}.filter-panel select,.filter-panel input{padding:.3rem;border:1px solid #e0e0e0;border-radius:4px;font:inherit}.filter-row button{padding:.3rem .6rem;border:1px solid #317546;background:#317546;color:#fff;border-radius:4px;cursor:pointer}.filter-row .remove{background:#fff;border-color:#c0392b;color:#c0392b}.table-toolbar{display:flex;gap:.5rem;margin-bottom:.75rem}.export-toggle{opacity:1;font-size:1rem;border:1px solid #317546;border-radius:4px;padding:.3rem .5rem;color:#317546}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#0006}.modal-card{background:#fff;border-radius:4px;max-width:320px;overflow:hidden;box-shadow:0 2px 6px #00000026}.modal-banner{background:#e8f5ec;color:#317546;font-weight:600;padding:.75rem 1.25rem}.modal-body{padding:1.25rem}.modal-message{color:#767676;font-size:.9rem;margin:0}.modal-error{color:#c0392b;font-size:.9rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.modal-actions button{padding:.4rem .9rem;border:1px solid #317546;background:#fff;color:#317546;border-radius:4px;cursor:pointer}.modal-actions .confirm{background:#317546;color:#fff}.modal-actions button:disabled{border-color:#c9c9c9;color:#c9c9c9;cursor:default}.modal-actions .confirm:disabled{background:#c9c9c9;border-color:#c9c9c9}.modal-actions .confirm.loading:disabled{background:#317546;border-color:#317546;display:flex;align-items:center;justify-content:center}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.columns-picker{position:relative}.columns-toggle{opacity:1;font-size:1rem;border:1px solid #317546;border-radius:4px;padding:.3rem .5rem;color:#317546}.columns-toggle.active{background:#317546;color:#fff}.columns-panel{max-height:300px;overflow-y:auto}.columns-option{display:flex;align-items:center;gap:.4rem;white-space:nowrap}.columns-panel .show-all{padding:.3rem .6rem;border:1px solid #317546;background:#317546;color:#fff;border-radius:4px;cursor:pointer}.pagination{display:flex;align-items:center;gap:1rem;margin-top:1rem}.pagination button{padding:.4rem .9rem;border:1px solid #317546;background:#fff;color:#317546;border-radius:4px;cursor:pointer}.pagination button:disabled{border-color:#c9c9c9;color:#c9c9c9;cursor:default}.login{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-form{display:flex;flex-direction:column;gap:1rem;width:280px;padding:2rem;border:1px solid #e0e0e0;border-radius:8px}.login-logo{width:64px;height:auto;margin:0 auto .5rem}.login-form input{padding:.6rem;border:1px solid #e0e0e0;border-radius:4px;font:inherit}.login-form button{padding:.6rem;border:none;background:#317546;color:#fff;border-radius:4px;cursor:pointer;font:inherit}.login-error{margin:0;color:#c0392b;font-size:.9rem}body{margin:0;font-family:system-ui,sans-serif}.content{margin-left:200px;height:100vh;box-sizing:border-box;padding:1.5rem;display:flex;flex-direction:column}
