:root{font-family:system-ui,-apple-system,"Noto Sans KR",sans-serif;color:#17242d;background:#f5f3ee;font-size:16px}*{box-sizing:border-box}body{margin:0;min-height:100vh}h1,h2,p{margin-top:0}h1{font-size:clamp(1.6rem,6vw,2.2rem);letter-spacing:-.04em}h2{font-size:1.2rem}.eyebrow{font-size:.72rem;letter-spacing:.17em;color:#53726d;font-weight:700}.site-header{padding:1.3rem max(1rem,env(safe-area-inset-left));display:flex;align-items:start;justify-content:space-between;gap:1rem;max-width:1040px;margin:auto}.site-header h1{margin-bottom:0}.page-grid{max-width:1040px;margin:auto;padding:0 1rem 3rem;display:grid;gap:1rem}.single-column{max-width:720px;margin:auto;padding:0 1rem 3rem;display:grid;gap:1rem}.panel,.login-card{background:#fff;border:1px solid #e4e2dc;border-radius:1.2rem;padding:1.25rem;box-shadow:0 8px 32px #2031320a}.panel h2{margin-bottom:1rem}.section-head{display:flex;justify-content:space-between;align-items:center}form label{display:block;color:#3e5058;font-size:.86rem;font-weight:600;margin:.85rem 0}input,select,textarea{display:block;width:100%;min-height:44px;border:1px solid #bec9c7;border-radius:.65rem;padding:.65rem .8rem;margin-top:.35rem;font:inherit;background:white;color:#17242d}button{font:inherit;cursor:pointer}.primary{display:block;width:100%;min-height:46px;border:0;border-radius:.7rem;background:#164f49;color:#fff;font-weight:700;margin-top:1.2rem}.primary:hover{background:#0d3d38}.text-button{border:0;background:transparent;color:#164f49;font-weight:700;padding:.4rem}.project-list,.job-list{display:grid;gap:.65rem}.project-card,.job-card{display:flex;flex-direction:column;gap:.3rem;color:inherit;text-decoration:none;background:#f7f8f5;border:1px solid #e2e8e5;border-radius:.8rem;padding:1rem}.project-card:hover{border-color:#599c8d}.project-card span,.muted,.job-card small{color:#697a7c;font-size:.9rem}.job-card p{margin:.3rem 0}.job-card>div{display:flex;justify-content:space-between;gap:1rem}.job-status{font-size:.78rem;text-transform:uppercase}.status-completed{color:#17654e}.status-failed{color:#a7333b}.login-body{display:grid;place-items:center;padding:1rem}.login-card{width:min(100%,400px)}.login-card p{color:#697a7c}.login-card .error{color:#9b2f35;background:#fff1f2;border-radius:.5rem;padding:.7rem}.back-link{display:inline-block;margin-bottom:.6rem;color:#164f49}.details div{display:flex;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid #e7ebe8}.details dt{color:#697a7c}.details dd{margin:0;text-align:right;overflow-wrap:anywhere}@media(min-width:760px){.site-header{padding:2rem 1.5rem}.page-grid{padding:0 1.5rem 4rem;grid-template-columns:minmax(280px,380px) 1fr;gap:1.5rem}.panel{padding:1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}}
.artifact-content{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.8;margin:0}
.check-label{display:flex;align-items:center;gap:.65rem}.check-label input{width:1.1rem;height:1.1rem;min-height:0;margin:0}
.create-project summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700;font-size:1.1rem;list-style:none}.create-project summary::after{content:"+";margin-left:auto;font-size:1.4rem;color:#164f49}.create-project[open] summary::after{content:"−"}.create-project summary::-webkit-details-marker{display:none}
.project-nav{display:flex;gap:.5rem;overflow-x:auto;max-width:720px;margin:0 auto 1rem;padding:0 1rem;scrollbar-width:thin}.project-nav a{flex:none;display:flex;align-items:center;min-height:44px;padding:.5rem .85rem;border-radius:999px;background:#e4efea;color:#164f49;font-weight:700;text-decoration:none;font-size:.88rem}.project-nav a:focus-visible,.primary:focus-visible,.project-card:focus-visible,.job-card:focus-visible{outline:3px solid #f2ac4b;outline-offset:2px}
