:root{--ink:#17242c;--muted:#64727b;--line:#dbe2e5;--surface:#fff;--bg:#eef2f3;--nav:#17272f;--green:#15755e;--red:#aa4435;--amber:#9a641c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px "Malgun Gothic",Arial,sans-serif;letter-spacing:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:210px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:var(--nav);color:#dbe4e7;padding:20px 14px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 22px;border-bottom:1px solid #30414a}.brand-mark{width:34px;height:34px;display:grid;place-items:center;background:#25886e;color:#fff;border-radius:5px;font-weight:800}.brand strong,.brand small{display:block}.brand small{margin-top:3px;color:#93a4ac}.sidebar nav{display:grid;gap:4px;padding-top:18px}.sidebar nav a{padding:11px 12px;border-radius:4px}.sidebar nav a.active,.sidebar nav a:hover{background:#263b45;color:#fff}.user-block{margin-top:auto;border-top:1px solid #30414a;padding:16px 8px 0}.user-block strong,.user-block span{display:block}.user-block span{color:#94a6ae;font-size:12px;margin:4px 0 12px}.user-block button{border:0;background:transparent;color:#bdc9ce;padding:0}.content{min-width:0;padding:28px 32px 60px}.page-header{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.page-header h1{font-size:23px;margin:4px 0 6px}.page-header p{margin:0;color:var(--muted)}.back-link{font-size:12px;color:var(--green)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--line);margin-bottom:20px}.metrics a{padding:18px 22px;border-right:1px solid var(--line)}.metrics a:last-child{border:0}.metrics span{display:block;color:var(--muted);font-size:12px}.metrics strong{display:block;font-size:25px;margin-top:6px}.data-section,.detail-section{background:#fff;border:1px solid var(--line)}.section-heading{height:58px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.section-heading h2,.detail-section h2{font-size:15px;margin:0}.section-heading select{height:34px;border:1px solid #cbd4d8;padding:0 8px;background:#fff}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:13px 16px;border-bottom:1px solid #e7ebed;text-align:left}th{background:#f7f9f9;color:#59666e;font-size:11px}td small{display:block;color:var(--muted);margin-top:3px}.table-link{color:var(--green);font-weight:700}.empty{text-align:center;color:var(--muted);padding:60px}.status{display:inline-flex;padding:5px 8px;border-radius:4px;background:#e9eef0;color:#53616a;font-size:11px;font-weight:700}.status-pending{background:#fff1d7;color:var(--amber)}.status-approved{background:#e5f3ed;color:var(--green)}.status-rejected,.status-apply_failed{background:#fbe9e6;color:var(--red)}.small-button{display:inline-block;border:1px solid #bdc8cd;padding:6px 10px;border-radius:4px}.search{display:flex}.search input{width:260px;height:38px;border:1px solid #c8d1d5;padding:0 10px}.search button{height:38px;border:0;background:var(--nav);color:#fff;padding:0 14px}.detail-layout{display:grid;gap:14px}.detail-section h2{padding:16px 18px;border-bottom:1px solid var(--line)}dl{margin:0}dl div{display:grid;grid-template-columns:150px 1fr;border-bottom:1px solid #edf0f1}dt,dd{margin:0;padding:13px 18px}dt{background:#f7f9f9;color:var(--muted);font-size:12px}.timeline{margin:0;padding:12px 28px 18px 42px}.timeline li{padding:7px}.timeline span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.action-bar{position:sticky;bottom:0;margin-top:16px;padding:12px;background:#fff;border:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.action-bar button{height:40px;padding:0 16px;border:1px solid #c4cdd1;background:#fff;border-radius:4px;font-weight:700}.action-bar .primary{background:var(--green);border-color:var(--green);color:#fff}.action-bar .danger{color:var(--red);border-color:#d9b3ad}.review-actions{width:100%;display:grid;grid-template-columns:1fr auto auto;gap:8px}.review-actions textarea{height:54px;resize:vertical;border:1px solid #c4cdd1;padding:8px}.messages{display:grid;gap:6px;margin-bottom:14px}.message{padding:11px 14px;background:#e7f3ee;border-left:3px solid var(--green)}.message.error{background:#fbecea;border-color:var(--red)}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:#e9edef}.login-panel{width:min(390px,100%);background:#fff;border:1px solid var(--line);padding:34px}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:34px}.login-brand strong,.login-brand div span{display:block}.login-brand div span{color:var(--muted);font-size:12px;margin-top:3px}.login-panel h1{font-size:21px;margin:0 0 8px}.login-panel>p{color:var(--muted);line-height:1.6;margin:0 0 24px}.google-button{height:44px;border:1px solid #bdc7cc;display:flex;align-items:center;justify-content:center;gap:10px;font-weight:700}.google-button span{font-size:18px;color:#3977d5}.config-notice{padding:14px;background:#f3f5f6}.config-notice strong,.config-notice span{display:block}.config-notice span{color:var(--muted);font-size:12px;margin-top:5px}@media(max-width:760px){.app-shell{display:block}.sidebar{position:static;width:100%;height:auto;padding:12px}.brand{padding:0 4px 10px}.sidebar nav{display:flex;padding-top:10px}.sidebar nav a{flex:1;text-align:center}.user-block{display:none}.content{padding:20px 12px 50px}.page-header{align-items:flex-start;flex-direction:column}.search{width:100%}.search input{min-width:0;flex:1}.metrics{grid-template-columns:repeat(3,1fr)}.metrics a{padding:14px 12px}.metrics strong{font-size:20px}dl div{grid-template-columns:110px 1fr}.review-actions{grid-template-columns:1fr 1fr}.review-actions textarea{grid-column:1/-1}.action-bar{position:static}.login-panel{padding:26px 20px}}
